diff mbox

STA: update scan results for ap_scan = 1 case also

Message ID 20140819211043.53307140513@ushik.mtv.corp.google.com
State Superseded
Headers show

Commit Message

Jouni Malinen Aug. 18, 2014, 6:04 p.m. UTC
Change-Id: Ic5a4db271b38f310f567bf9f536a9d95f2a599e6
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
---
 wpa_supplicant/events.c | 32 ++++++++++++++++++++------------
 1 file changed, 20 insertions(+), 12 deletions(-)

Comments

Jouni Malinen Sept. 13, 2014, 2:47 p.m. UTC | #1
On Mon, Aug 18, 2014 at 11:04:56AM -0700, Jouni Malinen wrote:
> Change-Id: Ic5a4db271b38f310f567bf9f536a9d95f2a599e6
> Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>

Thanks, applied.
diff mbox

Patch

diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 2d0b827..ba9e083 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -83,14 +83,31 @@  static struct wpa_bss * wpa_supplicant_get_new_bss(
 }
 
 
+static void wpa_supplicant_update_current_bss(struct wpa_supplicant *wpa_s)
+{
+	struct wpa_bss *bss = wpa_supplicant_get_new_bss(wpa_s, wpa_s->bssid);
+
+	if (!bss) {
+		wpa_supplicant_update_scan_results(wpa_s);
+
+		/* Get the BSS from the new scan results */
+		bss = wpa_supplicant_get_new_bss(wpa_s, wpa_s->bssid);
+	}
+
+	if (bss)
+		wpa_s->current_bss = bss;
+}
+
+
 static int wpa_supplicant_select_config(struct wpa_supplicant *wpa_s)
 {
 	struct wpa_ssid *ssid, *old_ssid;
-	struct wpa_bss *bss;
 	int res;
 
-	if (wpa_s->conf->ap_scan == 1 && wpa_s->current_ssid)
+	if (wpa_s->conf->ap_scan == 1 && wpa_s->current_ssid) {
+		wpa_supplicant_update_current_bss(wpa_s);
 		return 0;
+	}
 
 	wpa_dbg(wpa_s, MSG_DEBUG, "Select network based on association "
 		"information");
@@ -136,16 +153,7 @@  static int wpa_supplicant_select_config(struct wpa_supplicant *wpa_s)
 	old_ssid = wpa_s->current_ssid;
 	wpa_s->current_ssid = ssid;
 
-	bss = wpa_supplicant_get_new_bss(wpa_s, wpa_s->bssid);
-	if (!bss) {
-		wpa_supplicant_update_scan_results(wpa_s);
-
-		/* Get the BSS from the new scan results */
-		bss = wpa_supplicant_get_new_bss(wpa_s, wpa_s->bssid);
-	}
-
-	if (bss)
-		wpa_s->current_bss = bss;
+	wpa_supplicant_update_current_bss(wpa_s);
 
 	wpa_supplicant_rsn_supp_set_config(wpa_s, wpa_s->current_ssid);
 	wpa_supplicant_initiate_eapol(wpa_s);