From 6470f471e4f6eca2a1a71f8fcf8e386ec12f7e6a Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Fri, 3 Jan 2014 16:57:01 +0200 Subject: [PATCH] Remove unneeded scan delay on connection-in-progress This type of protection against concurrent connection and scan operations is now enforced through the wpa_radio work mechanism, so this separate protection mechanism is not needed anymore. Signed-hostap: Jouni Malinen --- wpa_supplicant/scan.c | 2 +- wpa_supplicant/wpa_supplicant.c | 36 ------------------------------- wpa_supplicant/wpa_supplicant_i.h | 1 - 3 files changed, 1 insertion(+), 38 deletions(-) diff --git a/wpa_supplicant/scan.c b/wpa_supplicant/scan.c index b84d537d8..c61bd552f 100644 --- a/wpa_supplicant/scan.c +++ b/wpa_supplicant/scan.c @@ -574,7 +574,7 @@ static void wpa_supplicant_scan(void *eloop_ctx, void *timeout_ctx) } #ifdef CONFIG_P2P - if (wpas_p2p_in_progress(wpa_s) || wpas_wpa_is_in_progress(wpa_s, 0)) { + if (wpas_p2p_in_progress(wpa_s)) { wpa_dbg(wpa_s, MSG_DEBUG, "Delay station mode scan while P2P operation is in progress"); wpa_supplicant_req_scan(wpa_s, 5, 0); return; diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c index 2480e56be..a85081c33 100644 --- a/wpa_supplicant/wpa_supplicant.c +++ b/wpa_supplicant/wpa_supplicant.c @@ -4346,42 +4346,6 @@ void wpas_request_connection(struct wpa_supplicant *wpa_s) } -static int wpas_conn_in_progress(struct wpa_supplicant *wpa_s) -{ - return wpa_s->wpa_state >= WPA_AUTHENTICATING && - wpa_s->wpa_state != WPA_COMPLETED; -} - - -/** - * wpas_wpa_is_in_progress - Check whether a connection is in progress - * @wpa_s: Pointer to wpa_supplicant data - * @include_current: Whether to consider specified interface - * - * This function is to check if the wpa state is in beginning of the connection - * during 4-way handshake or group key handshake with WPA on any shared - * interface. - */ -int wpas_wpa_is_in_progress(struct wpa_supplicant *wpa_s, int include_current) -{ - struct wpa_supplicant *ifs; - - dl_list_for_each(ifs, &wpa_s->radio->ifaces, struct wpa_supplicant, - radio_list) { - if (!include_current && ifs == wpa_s) - continue; - - if (wpas_conn_in_progress(ifs)) { - wpa_dbg(wpa_s, MSG_DEBUG, "Connection is in progress " - "on interface %s - defer", ifs->ifname); - return 1; - } - } - - return 0; -} - - void dump_freq_array(struct wpa_supplicant *wpa_s, const char *title, int *freq_array, unsigned int len) { diff --git a/wpa_supplicant/wpa_supplicant_i.h b/wpa_supplicant/wpa_supplicant_i.h index b8f41c815..eca86c6f4 100644 --- a/wpa_supplicant/wpa_supplicant_i.h +++ b/wpa_supplicant/wpa_supplicant_i.h @@ -881,7 +881,6 @@ int disallowed_ssid(struct wpa_supplicant *wpa_s, const u8 *ssid, size_t ssid_len); void wpas_request_connection(struct wpa_supplicant *wpa_s); int wpas_build_ext_capab(struct wpa_supplicant *wpa_s, u8 *buf); -int wpas_wpa_is_in_progress(struct wpa_supplicant *wpa_s, int include_current); /** * wpa_supplicant_ctrl_iface_ctrl_rsp_handle - Handle a control response