Don't bypass notifying a corresponding interface

when leaving a link-layer multicast group.

PR:		kern/22176
Reviewed by:	wollman
This commit is contained in:
Yaroslav Tykhiy 2001-03-27 13:15:57 +00:00
parent 4cbc8ad1bb
commit ccb7cc8ddd

View File

@ -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);