Extend ROAM command to handle multiple SSIDs per BSS
Select the BSS entry based on BSSID,SSID pairs instead of just BSSID to avoid selecting an unexpected SSID for the ROAM command. Signed-hostap: Jouni Malinen <j@w1.fi>
This commit is contained in:
parent
5126138c9e
commit
2f9b66d3ab
1 changed files with 7 additions and 7 deletions
|
@ -3513,7 +3513,13 @@ static int wpa_supplicant_ctrl_iface_roam(struct wpa_supplicant *wpa_s,
|
||||||
|
|
||||||
wpa_printf(MSG_DEBUG, "CTRL_IFACE ROAM " MACSTR, MAC2STR(bssid));
|
wpa_printf(MSG_DEBUG, "CTRL_IFACE ROAM " MACSTR, MAC2STR(bssid));
|
||||||
|
|
||||||
bss = wpa_bss_get_bssid(wpa_s, bssid);
|
if (!ssid) {
|
||||||
|
wpa_printf(MSG_DEBUG, "CTRL_IFACE ROAM: No network "
|
||||||
|
"configuration known for the target AP");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
bss = wpa_bss_get(wpa_s, bssid, ssid->ssid, ssid->ssid_len);
|
||||||
if (!bss) {
|
if (!bss) {
|
||||||
wpa_printf(MSG_DEBUG, "CTRL_IFACE ROAM: Target AP not found "
|
wpa_printf(MSG_DEBUG, "CTRL_IFACE ROAM: Target AP not found "
|
||||||
"from BSS table");
|
"from BSS table");
|
||||||
|
@ -3525,12 +3531,6 @@ static int wpa_supplicant_ctrl_iface_roam(struct wpa_supplicant *wpa_s,
|
||||||
* allow roaming to other networks
|
* allow roaming to other networks
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (!ssid) {
|
|
||||||
wpa_printf(MSG_DEBUG, "CTRL_IFACE ROAM: No network "
|
|
||||||
"configuration known for the target AP");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
wpa_s->reassociate = 1;
|
wpa_s->reassociate = 1;
|
||||||
wpa_supplicant_connect(wpa_s, bss, ssid);
|
wpa_supplicant_connect(wpa_s, bss, ssid);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue