diff options
author | glebius <glebius@FreeBSD.org> | 2012-01-09 08:50:22 +0000 |
---|---|---|
committer | glebius <glebius@FreeBSD.org> | 2012-01-09 08:50:22 +0000 |
commit | 7b863fa87ee84acb68f03cbcf963dd421d07d2b8 (patch) | |
tree | 5353910ee59114e5bf397aaf16a03509834aa055 /sys/netinet/in_proto.c | |
parent | 5c6255ab302230be3f22b74b30ef6f13e69afc25 (diff) | |
download | FreeBSD-src-7b863fa87ee84acb68f03cbcf963dd421d07d2b8.zip FreeBSD-src-7b863fa87ee84acb68f03cbcf963dd421d07d2b8.tar.gz |
Bunch of fixes to pfsync(4) module load/unload:
o Make the pfsync.ko actually usable. Before this change loading it
didn't register protosw, so was a nop. However, a module /boot/kernel
did confused users.
o Rewrite the way we are joining multicast group:
- Move multicast initialization/destruction to separate functions.
- Don't allocate memory if we aren't going to join a multicast group.
- Use modern API for joining/leaving multicast group.
- Now the utterly wrong pfsync_ifdetach() isn't needed.
o Move module initialization from SYSINIT(9) to moduledata_t method.
o Refuse to unload module, unless asked forcibly.
o Improve a bit some FreeBSD porting code:
- Use separate malloc type.
- Simplify swi sheduling.
This change is probably wrong from VIMAGE viewpoint, however pfsync
wasn't VIMAGE-correct before this change, too.
Glanced at by: bz
Diffstat (limited to 'sys/netinet/in_proto.c')
-rw-r--r-- | sys/netinet/in_proto.c | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/sys/netinet/in_proto.c b/sys/netinet/in_proto.c index a9a3890..b7dc82a 100644 --- a/sys/netinet/in_proto.c +++ b/sys/netinet/in_proto.c @@ -37,7 +37,6 @@ __FBSDID("$FreeBSD$"); #include "opt_ipsec.h" #include "opt_inet.h" #include "opt_inet6.h" -#include "opt_pf.h" #include "opt_sctp.h" #include "opt_mpath.h" @@ -101,11 +100,6 @@ static struct pr_usrreqs nousrreqs; #include <netinet/sctp_var.h> #endif /* SCTP */ -#ifdef DEV_PFSYNC -#include <net/pfvar.h> -#include <net/if_pfsync.h> -#endif - FEATURE(inet, "Internet Protocol version 4"); extern struct domain inetdomain; @@ -317,17 +311,6 @@ struct protosw inetsw[] = { .pr_ctloutput = rip_ctloutput, .pr_usrreqs = &rip_usrreqs }, -#ifdef DEV_PFSYNC -{ - .pr_type = SOCK_RAW, - .pr_domain = &inetdomain, - .pr_protocol = IPPROTO_PFSYNC, - .pr_flags = PR_ATOMIC|PR_ADDR, - .pr_input = pfsync_input, - .pr_ctloutput = rip_ctloutput, - .pr_usrreqs = &rip_usrreqs -}, -#endif /* DEV_PFSYNC */ /* Spacer n-times for loadable protocols. */ IPPROTOSPACER, IPPROTOSPACER, @@ -397,6 +380,3 @@ SYSCTL_NODE(_net_inet, IPPROTO_IPCOMP, ipcomp, CTLFLAG_RW, 0, "IPCOMP"); SYSCTL_NODE(_net_inet, IPPROTO_IPIP, ipip, CTLFLAG_RW, 0, "IPIP"); #endif /* IPSEC */ SYSCTL_NODE(_net_inet, IPPROTO_RAW, raw, CTLFLAG_RW, 0, "RAW"); -#ifdef DEV_PFSYNC -SYSCTL_NODE(_net_inet, IPPROTO_PFSYNC, pfsync, CTLFLAG_RW, 0, "PFSYNC"); -#endif |