diff options
author | phk <phk@FreeBSD.org> | 1996-02-24 13:38:28 +0000 |
---|---|---|
committer | phk <phk@FreeBSD.org> | 1996-02-24 13:38:28 +0000 |
commit | 45a7f29691072258573e111c1034432e37e944f2 (patch) | |
tree | c2e95be8f2e89f3c4a7e2f1ecd65471c55e01cb8 /sys/netinet/raw_ip.c | |
parent | 4bcbc91c0c769ab35c42d986c2ec4a6f6cc51b8d (diff) | |
download | FreeBSD-src-45a7f29691072258573e111c1034432e37e944f2.zip FreeBSD-src-45a7f29691072258573e111c1034432e37e944f2.tar.gz |
Make getsockopt() capable of handling more than one mbuf worth of data.
Use this to read rules out of ipfw.
Add the lkm code to ipfw.c
Diffstat (limited to 'sys/netinet/raw_ip.c')
-rw-r--r-- | sys/netinet/raw_ip.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/sys/netinet/raw_ip.c b/sys/netinet/raw_ip.c index 4d9916d..e8076b6 100644 --- a/sys/netinet/raw_ip.c +++ b/sys/netinet/raw_ip.c @@ -31,7 +31,7 @@ * SUCH DAMAGE. * * @(#)raw_ip.c 8.7 (Berkeley) 5/15/95 - * $Id: raw_ip.c,v 1.25 1995/12/09 20:43:53 phk Exp $ + * $Id: raw_ip.c,v 1.26 1996/02/23 15:47:58 phk Exp $ */ #include <sys/param.h> @@ -218,23 +218,22 @@ rip_ctloutput(op, so, level, optname, m) } return (error); + case IP_FW_GET: + if (ip_fw_ctl_ptr==NULL || op == PRCO_SETOPT) { + if (*m) (void)m_free(*m); + return(EINVAL); + } + return (*ip_fw_ctl_ptr)(optname, m); case IP_FW_ADD: case IP_FW_DEL: case IP_FW_FLUSH: case IP_FW_ZERO: - if (ip_fw_ctl_ptr==NULL) { - if (*m) - (void)m_free(*m); + if (ip_fw_ctl_ptr==NULL || op != PRCO_SETOPT) { + if (*m) (void)m_free(*m); return(EINVAL); } - if (op == PRCO_SETOPT) { - error=(*ip_fw_ctl_ptr)(optname, *m); - if (*m) - (void)m_free(*m); - } - else - error=EINVAL; + return (*ip_fw_ctl_ptr)(optname, m); return(error); case IP_RSVP_ON: |