diff options
author | Andrew Thompson <thompsa@FreeBSD.org> | 2005-06-06 02:41:29 +0000 |
---|---|---|
committer | Andrew Thompson <thompsa@FreeBSD.org> | 2005-06-06 02:41:29 +0000 |
commit | f2999b2fdf2ee56bb3da87cdb95f67f344566d85 (patch) | |
tree | aad47ef9350a45815a53e3b611aa84a6773e2b53 /sys/net/if_bridge.c | |
parent | e5224c3fd91c3dba1269a04ac2d407fd751d6818 (diff) | |
download | src-f2999b2fdf2ee56bb3da87cdb95f67f344566d85.tar.gz src-f2999b2fdf2ee56bb3da87cdb95f67f344566d85.zip |
Change ipv6 packet filtering to match ipv4. It now checks pfil_member and
pfil_bridge to determine which interfaces to filter on.
Approved by: mlaier (mentor)
Notes
Notes:
svn path=/head/; revision=147040
Diffstat (limited to 'sys/net/if_bridge.c')
-rw-r--r-- | sys/net/if_bridge.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/net/if_bridge.c b/sys/net/if_bridge.c index 04fa6aabd475..d6825f3b3892 100644 --- a/sys/net/if_bridge.c +++ b/sys/net/if_bridge.c @@ -2218,9 +2218,18 @@ static int bridge_pfil(struct mbuf **mp, struct ifnet *bifp, # ifdef INET6 case ETHERTYPE_IPV6 : error = (dir == PFIL_IN) ? bridge_ip6_checkbasic(mp) : 0; - if (error == 0) + + if (error == 0 && pfil_bridge && dir == PFIL_OUT) + error = pfil_run_hooks(&inet6_pfil_hook, mp, bifp, + dir, NULL); + + if (error == 0 && pfil_member) error = pfil_run_hooks(&inet6_pfil_hook, mp, ifp, dir, NULL); + + if (error == 0 && pfil_bridge && dir == PFIL_IN) + error = pfil_run_hooks(&inet6_pfil_hook, mp, bifp, + dir, NULL); break; # endif default : |