nl80211: Fix regression in returning to AP mode after scan
Commit b1f625e0d8
extended
ap_scan_as_station to be able to distinguish between AP and P2P GO
iftypes. However, it did this in a way that completely lost the original
mode because drv->nlmode had already been replaced with the station
mode. Fix this by storing the correct old mode.
Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
a05e236b11
commit
72e7fb3fd9
1 changed files with 3 additions and 1 deletions
|
@ -4901,6 +4901,8 @@ static int wpa_driver_nl80211_scan(struct i802_bss *bss,
|
||||||
wpa_printf(MSG_DEBUG, "nl80211: Scan trigger failed: ret=%d "
|
wpa_printf(MSG_DEBUG, "nl80211: Scan trigger failed: ret=%d "
|
||||||
"(%s)", ret, strerror(-ret));
|
"(%s)", ret, strerror(-ret));
|
||||||
if (drv->hostapd && is_ap_interface(drv->nlmode)) {
|
if (drv->hostapd && is_ap_interface(drv->nlmode)) {
|
||||||
|
enum nl80211_iftype old_mode = drv->nlmode;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* mac80211 does not allow scan requests in AP mode, so
|
* mac80211 does not allow scan requests in AP mode, so
|
||||||
* try to do this in station mode.
|
* try to do this in station mode.
|
||||||
|
@ -4915,7 +4917,7 @@ static int wpa_driver_nl80211_scan(struct i802_bss *bss,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Restore AP mode when processing scan results */
|
/* Restore AP mode when processing scan results */
|
||||||
drv->ap_scan_as_station = drv->nlmode;
|
drv->ap_scan_as_station = old_mode;
|
||||||
ret = 0;
|
ret = 0;
|
||||||
} else
|
} else
|
||||||
goto nla_put_failure;
|
goto nla_put_failure;
|
||||||
|
|
Loading…
Reference in a new issue