nl80211: Indicate interface up only for the main netdev
ifname is checked for interface down event in commit
106fa1e97e
("nl80211: Indicate
interface-down event only for the main netdev"). Do the same for
interface up event to avoid unexpected notifications when the master
interface (e.g., a bridge interface) is set up while then WLAN interface
remains down.
Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
This commit is contained in:
parent
c809756f9f
commit
8a9950f7b6
1 changed files with 9 additions and 1 deletions
|
@ -1079,11 +1079,20 @@ static void wpa_driver_nl80211_event_rtm_newlink(void *ctx,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (drv->if_disabled && (ifi->ifi_flags & IFF_UP)) {
|
if (drv->if_disabled && (ifi->ifi_flags & IFF_UP)) {
|
||||||
|
namebuf[0] = '\0';
|
||||||
if (if_indextoname(ifi->ifi_index, namebuf) &&
|
if (if_indextoname(ifi->ifi_index, namebuf) &&
|
||||||
linux_iface_up(drv->global->ioctl_sock, namebuf) == 0) {
|
linux_iface_up(drv->global->ioctl_sock, namebuf) == 0) {
|
||||||
wpa_printf(MSG_DEBUG, "nl80211: Ignore interface up "
|
wpa_printf(MSG_DEBUG, "nl80211: Ignore interface up "
|
||||||
"event since interface %s is down",
|
"event since interface %s is down",
|
||||||
namebuf);
|
namebuf);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
wpa_printf(MSG_DEBUG, "nl80211: Interface up (%s/%s)",
|
||||||
|
namebuf, ifname);
|
||||||
|
if (os_strcmp(drv->first_bss->ifname, ifname) != 0) {
|
||||||
|
wpa_printf(MSG_DEBUG,
|
||||||
|
"nl80211: Not the main interface (%s) - do not indicate interface up",
|
||||||
|
drv->first_bss->ifname);
|
||||||
} else if (if_nametoindex(drv->first_bss->ifname) == 0) {
|
} else if (if_nametoindex(drv->first_bss->ifname) == 0) {
|
||||||
wpa_printf(MSG_DEBUG, "nl80211: Ignore interface up "
|
wpa_printf(MSG_DEBUG, "nl80211: Ignore interface up "
|
||||||
"event since interface %s does not exist",
|
"event since interface %s does not exist",
|
||||||
|
@ -1096,7 +1105,6 @@ static void wpa_driver_nl80211_event_rtm_newlink(void *ctx,
|
||||||
/* Re-read MAC address as it may have changed */
|
/* Re-read MAC address as it may have changed */
|
||||||
nl80211_refresh_mac(drv, ifi->ifi_index, 0);
|
nl80211_refresh_mac(drv, ifi->ifi_index, 0);
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "nl80211: Interface up");
|
|
||||||
drv->if_disabled = 0;
|
drv->if_disabled = 0;
|
||||||
wpa_supplicant_event(drv->ctx, EVENT_INTERFACE_ENABLED,
|
wpa_supplicant_event(drv->ctx, EVENT_INTERFACE_ENABLED,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
Loading…
Reference in a new issue