aboutsummaryrefslogtreecommitdiff
path: root/sys/net/if_bridge.c
diff options
context:
space:
mode:
authorAndrew Thompson <thompsa@FreeBSD.org>2005-06-06 02:41:29 +0000
committerAndrew Thompson <thompsa@FreeBSD.org>2005-06-06 02:41:29 +0000
commitf2999b2fdf2ee56bb3da87cdb95f67f344566d85 (patch)
treeaad47ef9350a45815a53e3b611aa84a6773e2b53 /sys/net/if_bridge.c
parente5224c3fd91c3dba1269a04ac2d407fd751d6818 (diff)
downloadsrc-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.c11
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 :