diff options
author | yar <yar@FreeBSD.org> | 2001-03-27 13:15:57 +0000 |
---|---|---|
committer | yar <yar@FreeBSD.org> | 2001-03-27 13:15:57 +0000 |
commit | 9f5f3328cc0f63cbcf1211ebcc87b0e71592b0a6 (patch) | |
tree | 07508e471b80557be1b8e1a156c90a104cb6190c | |
parent | b3a36066dfcabf2654b9bba67630b9ef2b74ff97 (diff) | |
download | FreeBSD-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.c | 6 |
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); |