Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/netinet/raw_ip.c,v retrieving revision 1.21.2.1 retrieving revision 1.22 diff -u -p -r1.21.2.1 -r1.22 --- src/sys/netinet/raw_ip.c 1996/02/02 06:12:52 1.21.2.1 +++ src/sys/netinet/raw_ip.c 1995/11/30 16:42:18 1.22 @@ -1,4 +1,4 @@ -/* $NetBSD: raw_ip.c,v 1.21.2.1 1996/02/02 06:12:52 mycroft Exp $ */ +/* $NetBSD: raw_ip.c,v 1.22 1995/11/30 16:42:18 pk Exp $ */ /* * Copyright (c) 1982, 1986, 1988, 1993 @@ -73,7 +73,7 @@ void rip_init() { - in_pcbinit(&rawcbtable, 1); + in_pcbinit(&rawcbtable); } struct sockaddr_in ripsrc = { sizeof(ripsrc), AF_INET }; @@ -255,6 +255,15 @@ rip_usrreq(so, req, m, nam, control) #ifdef MROUTING extern struct socket *ip_mrouter; #endif + if (req == PRU_CONTROL) + return (in_control(so, (long)m, (caddr_t)nam, + (struct ifnet *)control)); + + if (inp == NULL && req != PRU_ATTACH) { + error = EINVAL; + goto release; + } + switch (req) { case PRU_ATTACH: @@ -396,6 +405,7 @@ rip_usrreq(so, req, m, nam, control) default: panic("rip_usrreq"); } +release: if (m != NULL) m_freem(m); return (error);