aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFidaullah Noonari <fidaullah.noonari@emumba.com>2023-02-28 16:44:12 +0000
committerWarner Losh <imp@FreeBSD.org>2023-03-04 05:25:17 +0000
commit290f7f4a0921d1606aae8568a04f12025fbf834c (patch)
tree06f1d027d3a313a40d27fb0c7004882daa3a2813
parent7fc82fd1f82eb37ff52a9199f1e7d640748811ba (diff)
downloadsrc-290f7f4a0921d1606aae8568a04f12025fbf834c.tar.gz
src-290f7f4a0921d1606aae8568a04f12025fbf834c.zip
in_mcat.c: change multicast not member condition
If there is no source filter entry => block if that's SSM ("exclude" mode per RFC 3678 clause 3). If there is an entry => check its action & block if the action is "exclude". It would be nice if the test case in this PR were converted into an ATF test case, but not blocking on that. Reviewed by: imp, melifaro Pull Request: https://github.com/freebsd/freebsd-src/pull/601
-rw-r--r--sys/netinet/in_mcast.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/netinet/in_mcast.c b/sys/netinet/in_mcast.c
index bbedbf8ceaa3..ef29a8072ccb 100644
--- a/sys/netinet/in_mcast.c
+++ b/sys/netinet/in_mcast.c
@@ -480,7 +480,7 @@ imo_multi_filter(const struct ip_moptions *imo, const struct ifnet *ifp,
ims = imo_match_source(imf, src);
if ((ims == NULL && mode == MCAST_INCLUDE) ||
- (ims != NULL && ims->imsl_st[0] != mode))
+ (ims != NULL && ims->imsl_st[0] == MCAST_EXCLUDE))
return (MCAST_NOTSMEMBER);
return (MCAST_PASS);