ieee80211_ioctl.c (11e9b8bad115cf9799076d3add8824862b038563) | ieee80211_ioctl.c (93ec7edca7b468b0a17047e5c6571237b09dcae5) |
---|---|
1/*- 2 * Copyright (c) 2001 Atsushi Onoe 3 * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 3185 unchanged lines hidden (view full) --- 3194static void 3195ieee80211_ioctl_updatemulti(struct ieee80211com *ic) 3196{ 3197 struct ifnet *parent = ic->ic_ifp; 3198 struct ieee80211vap *vap; 3199 void *ioctl; 3200 3201 IEEE80211_LOCK(ic); | 1/*- 2 * Copyright (c) 2001 Atsushi Onoe 3 * Copyright (c) 2002-2009 Sam Leffler, Errno Consulting 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 3185 unchanged lines hidden (view full) --- 3194static void 3195ieee80211_ioctl_updatemulti(struct ieee80211com *ic) 3196{ 3197 struct ifnet *parent = ic->ic_ifp; 3198 struct ieee80211vap *vap; 3199 void *ioctl; 3200 3201 IEEE80211_LOCK(ic); |
3202 if_purgemaddrs(parent); | 3202 if_delallmulti(parent); |
3203 ioctl = parent->if_ioctl; /* XXX WAR if_allmulti */ 3204 parent->if_ioctl = NULL; 3205 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { 3206 struct ifnet *ifp = vap->iv_ifp; 3207 struct ifmultiaddr *ifma; 3208 | 3203 ioctl = parent->if_ioctl; /* XXX WAR if_allmulti */ 3204 parent->if_ioctl = NULL; 3205 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) { 3206 struct ifnet *ifp = vap->iv_ifp; 3207 struct ifmultiaddr *ifma; 3208 |
3209 TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) | 3209 TAILQ_FOREACH(ifma, &ifp->if_multiaddrs, ifma_link) { 3210 if (ifma->ifma_addr->sa_family != AF_LINK) 3211 continue; |
3210 (void) if_addmulti(parent, ifma->ifma_addr, NULL); | 3212 (void) if_addmulti(parent, ifma->ifma_addr, NULL); |
3213 } |
|
3211 } 3212 parent->if_ioctl = ioctl; 3213 ieee80211_runtask(ic, &ic->ic_mcast_task); 3214 IEEE80211_UNLOCK(ic); 3215} 3216 3217int 3218ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) --- 122 unchanged lines hidden --- | 3214 } 3215 parent->if_ioctl = ioctl; 3216 ieee80211_runtask(ic, &ic->ic_mcast_task); 3217 IEEE80211_UNLOCK(ic); 3218} 3219 3220int 3221ieee80211_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data) --- 122 unchanged lines hidden --- |