return 0;
}
- if (wnm_scan_process(wpa_s, false) > 0)
- goto scan_work_done;
-
if (sme_proc_obss_scan(wpa_s) > 0)
goto scan_work_done;
wpas_wps_update_ap_info(wpa_s, scan_res);
+ if (wnm_scan_process(wpa_s, false) > 0)
+ goto scan_work_done;
+
if (wpa_s->wpa_state >= WPA_AUTHENTICATING &&
wpa_s->wpa_state < WPA_COMPLETED)
goto scan_work_done;
goto send_bss_resp_fail;
}
+ if (!pre_scan_check && !wpa_s->wnm_transition_scan)
+ return 0;
+
+ wpa_s->wnm_transition_scan = false;
+
/* Compare the Neighbor Report and scan results */
bss = compare_scan_neighbor_results(wpa_s, 0, &reason);
if (wpa_s->wnm_dissoc_timer && !wpa_s->scanning &&
(!wpa_s->current_ssid || !wpa_s->current_ssid->bssid_set)) {
wpa_printf(MSG_DEBUG, "Trying to find another BSS");
+ wpa_s->wnm_transition_scan = true;
wpa_supplicant_req_scan(wpa_s, 0, 0);
}
}
"WNM: Scan only for a specific BSSID since there is only a single candidate "
MACSTR, MAC2STR(wpa_s->next_scan_bssid));
}
+ wpa_s->wnm_transition_scan = true;
wpa_supplicant_req_scan(wpa_s, 0, 0);
} else if (reply) {
enum bss_trans_mgmt_status_code status;