aboutsummaryrefslogtreecommitdiff
path: root/wpa_supplicant.c
diff options
context:
space:
mode:
Diffstat (limited to 'wpa_supplicant.c')
-rw-r--r--wpa_supplicant.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/wpa_supplicant.c b/wpa_supplicant.c
index 706a010..aabef73 100644
--- a/wpa_supplicant.c
+++ b/wpa_supplicant.c
@@ -492,6 +492,7 @@ void wpa_blacklist_clear(struct wpa_supplicant *wpa_s)
*/
void wpa_supplicant_req_scan(struct wpa_supplicant *wpa_s, int sec, int usec)
{
+#ifndef ANDROID
/* If there's at least one network that should be specifically scanned
* then don't cancel the scan and reschedule. Some drivers do
* background scanning which generates frequent scan results, and that
@@ -513,6 +514,7 @@ void wpa_supplicant_req_scan(struct wpa_supplicant *wpa_s, int sec, int usec)
return;
}
}
+#endif
wpa_msg(wpa_s, MSG_DEBUG, "Setting scan request: %d sec %d usec",
sec, usec);
@@ -954,7 +956,11 @@ int wpa_supplicant_reload_configuration(struct wpa_supplicant *wpa_s)
wpa_supplicant_clear_status(wpa_s);
wpa_s->reassociate = 1;
+#ifdef ANDROID
+ wpa_supplicant_req_scan(wpa_s, 2, 0);
+#else
wpa_supplicant_req_scan(wpa_s, 0, 0);
+#endif
wpa_msg(wpa_s, MSG_DEBUG, "Reconfiguration completed");
return 0;
}
@@ -1105,6 +1111,8 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx)
wpa_printf(MSG_WARNING, "Failed to initiate AP scan.");
wpa_supplicant_req_scan(wpa_s, 10, 0);
}
+ else
+ wpa_s->scan_ongoing = 1;
}
@@ -1385,6 +1393,8 @@ void wpa_supplicant_associate(struct wpa_supplicant *wpa_s,
wpa_ssid_txt(bss->ssid, bss->ssid_len), bss->freq);
os_memset(wpa_s->bssid, 0, ETH_ALEN);
os_memcpy(wpa_s->pending_bssid, bss->bssid, ETH_ALEN);
+ wpa_s->link_speed = bss->maxrate;
+ wpa_s->rssi = bss->level;
} else {
wpa_msg(wpa_s, MSG_INFO, "Trying to associate with SSID '%s'",
wpa_ssid_txt(ssid->ssid, ssid->ssid_len));