summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryar <yar@FreeBSD.org>2001-03-27 13:15:57 +0000
committeryar <yar@FreeBSD.org>2001-03-27 13:15:57 +0000
commit9f5f3328cc0f63cbcf1211ebcc87b0e71592b0a6 (patch)
tree07508e471b80557be1b8e1a156c90a104cb6190c
parentb3a36066dfcabf2654b9bba67630b9ef2b74ff97 (diff)
downloadFreeBSD-src-9f5f3328cc0f63cbcf1211ebcc87b0e71592b0a6.zip
FreeBSD-src-9f5f3328cc0f63cbcf1211ebcc87b0e71592b0a6.tar.gz
Don't bypass notifying a corresponding interface
when leaving a link-layer multicast group. PR: kern/22176 Reviewed by: wollman
-rw-r--r--sys/net/if.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/net/if.c b/sys/net/if.c
index 2f06afd..d7ca2f5 100644
--- a/sys/net/if.c
+++ b/sys/net/if.c
@@ -1284,6 +1284,12 @@ if_delmulti(ifp, sa)
sa = ifma->ifma_lladdr;
s = splimp();
TAILQ_REMOVE(&ifp->if_multiaddrs, ifma, ifma_link);
+ /*
+ * Make sure the interface driver is notified
+ * in the case of a link layer mcast group being left.
+ */
+ if (ifma->ifma_addr->sa_family == AF_LINK && sa == 0)
+ ifp->if_ioctl(ifp, SIOCDELMULTI, 0);
splx(s);
free(ifma->ifma_addr, M_IFMADDR);
free(ifma, M_IFMADDR);
OpenPOWER on IntegriCloud