* Remove any multicast network addresses from an interface when an ifnet * is going away. */
| 1093 | * is going away. |
| 1094 | */ |
| 1095 | static void |
| 1096 | if_purgemaddrs(struct ifnet *ifp) |
| 1097 | { |
| 1098 | struct ifmultiaddr *ifma; |
| 1099 | |
| 1100 | IF_ADDR_WLOCK(ifp); |
| 1101 | while (!CK_STAILQ_EMPTY(&ifp->if_multiaddrs)) { |
| 1102 | ifma = CK_STAILQ_FIRST(&ifp->if_multiaddrs); |
| 1103 | CK_STAILQ_REMOVE(&ifp->if_multiaddrs, ifma, ifmultiaddr, ifma_link); |
| 1104 | if_delmulti_locked(ifp, ifma, 1); |
| 1105 | } |
| 1106 | IF_ADDR_WUNLOCK(ifp); |
| 1107 | } |
| 1108 | |
| 1109 | /* |
| 1110 | * Detach an interface, removing it from the list of "active" interfaces. |
no test coverage detected