From patchwork Mon Oct 29 09:13:39 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Spinadel, David" X-Patchwork-Id: 194923 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from maxx.maxx.shmoo.com (maxx.shmoo.com [205.134.188.171]) by ozlabs.org (Postfix) with ESMTP id EAA742C009A for ; Mon, 29 Oct 2012 20:25:12 +1100 (EST) Received: from localhost (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id 759CA9C16D; Mon, 29 Oct 2012 05:25:10 -0400 (EDT) X-Virus-Scanned: amavisd-new at maxx.shmoo.com Received: from maxx.maxx.shmoo.com ([127.0.0.1]) by localhost (maxx.shmoo.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 0R0eqmU9XJyh; Mon, 29 Oct 2012 05:25:10 -0400 (EDT) Received: from maxx.shmoo.com (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id 58C399C170; Mon, 29 Oct 2012 05:25:05 -0400 (EDT) X-Original-To: mailman-post+hostap@maxx.shmoo.com Delivered-To: mailman-post+hostap@maxx.shmoo.com Received: from localhost (localhost [127.0.0.1]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id C863B9C170 for ; Mon, 29 Oct 2012 05:25:04 -0400 (EDT) X-Virus-Scanned: amavisd-new at maxx.shmoo.com Received: from maxx.maxx.shmoo.com ([127.0.0.1]) by localhost (maxx.shmoo.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id cNVaXUefOhIL for ; Mon, 29 Oct 2012 05:24:59 -0400 (EDT) Received: from mga03.intel.com (mga03.intel.com [143.182.124.21]) by maxx.maxx.shmoo.com (Postfix) with ESMTP id A50D49C16D for ; Mon, 29 Oct 2012 05:24:56 -0400 (EDT) Received: from azsmga002.ch.intel.com ([10.2.17.35]) by azsmga101.ch.intel.com with ESMTP; 29 Oct 2012 02:24:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="4.80,670,1344236400"; d="scan'208";a="161816632" Received: from imail001.iil.intel.com ([10.184.77.142]) by AZSMGA002.ch.intel.com with ESMTP; 29 Oct 2012 02:24:28 -0700 Received: from dspinade.jer.intel.com (dspinade.jer.intel.com [10.12.217.159]) by imail001.iil.intel.com with ESMTP id q9T9ON0Q025057; Mon, 29 Oct 2012 11:24:27 +0200 From: david.spinadel@intel.com To: hostap@lists.shmoo.com Subject: [PATCH 1/3] wpa_supplicant: abort scan after removing all networks Date: Mon, 29 Oct 2012 11:13:39 +0200 Message-Id: <1351502021-10795-1-git-send-email-david.spinadel@intel.com> X-Mailer: git-send-email 1.7.1 X-BeenThere: hostap@lists.shmoo.com X-Mailman-Version: 2.1.9 Precedence: list List-Id: HostAP Project List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: hostap-bounces@lists.shmoo.com Errors-To: hostap-bounces@lists.shmoo.com From: David Spinadel Change-Id: I737848dabed49d961985845f2e86f717c2926f0c Reviewed-on: http://git-mwg.jer.intel.com/gerrit/3585 Reviewed-by: Jenkins Tested-by: Jenkins Reviewed-by: Max Stepanov Tested-by: Max Stepanov Signed-off-by: David Spinadel --- wpa_supplicant/ctrl_iface.c | 7 +++++++ wpa_supplicant/dbus/dbus_new_handlers.c | 8 ++++++++ wpa_supplicant/dbus/dbus_old_handlers.c | 5 +++++ wpa_supplicant/wps_supplicant.c | 5 +++++ 4 files changed, 25 insertions(+), 0 deletions(-) diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index 0351241..d1a5cf6 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -2224,6 +2224,8 @@ static int wpa_supplicant_ctrl_iface_remove_network( /* cmd: "" or "all" */ if (os_strcmp(cmd, "all") == 0) { wpa_printf(MSG_DEBUG, "CTRL_IFACE: REMOVE_NETWORK all"); + wpa_supplicant_cancel_sched_scan(wpa_s); + wpa_supplicant_cancel_scan(wpa_s); ssid = wpa_s->conf->ssid; while (ssid) { struct wpa_ssid *remove_ssid = ssid; @@ -2281,6 +2283,11 @@ static int wpa_supplicant_ctrl_iface_remove_network( return -1; } + if (!wpa_s->conf->ssid) { + wpa_supplicant_cancel_sched_scan(wpa_s); + wpa_supplicant_cancel_scan(wpa_s); + } + return 0; } diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c b/wpa_supplicant/dbus/dbus_new_handlers.c index 00378be..b0f0d0e 100644 --- a/wpa_supplicant/dbus/dbus_new_handlers.c +++ b/wpa_supplicant/dbus/dbus_new_handlers.c @@ -1525,6 +1525,11 @@ DBusMessage * wpas_dbus_handler_remove_network(DBusMessage *message, wpa_supplicant_deauthenticate(wpa_s, WLAN_REASON_DEAUTH_LEAVING); + if (!wpa_s->conf->ssid) { + wpa_supplicant_cancel_sched_scan(wpa_s); + wpa_supplicant_cancel_scan(wpa_s); + } + out: os_free(iface); os_free(net_id); @@ -1562,6 +1567,9 @@ static void remove_network(void *arg, struct wpa_ssid *ssid) DBusMessage * wpas_dbus_handler_remove_all_networks( DBusMessage *message, struct wpa_supplicant *wpa_s) { + wpa_supplicant_cancel_sched_scan(wpa_s); + wpa_supplicant_cancel_scan(wpa_s); + /* NB: could check for failure and return an error */ wpa_config_foreach_network(wpa_s->conf, remove_network, wpa_s); return NULL; diff --git a/wpa_supplicant/dbus/dbus_old_handlers.c b/wpa_supplicant/dbus/dbus_old_handlers.c index e217a72..ff60f6e 100644 --- a/wpa_supplicant/dbus/dbus_old_handlers.c +++ b/wpa_supplicant/dbus/dbus_old_handlers.c @@ -870,6 +870,11 @@ DBusMessage * wpas_dbus_iface_remove_network(DBusMessage *message, WLAN_REASON_DEAUTH_LEAVING); reply = wpas_dbus_new_success_reply(message); + if (!wpa_s->conf->ssid) { + wpa_supplicant_cancel_sched_scan(wpa_s); + wpa_supplicant_cancel_scan(wpa_s); + } + out: os_free(iface); os_free(net_id); diff --git a/wpa_supplicant/wps_supplicant.c b/wpa_supplicant/wps_supplicant.c index 41aa5db..87ea320 100644 --- a/wpa_supplicant/wps_supplicant.c +++ b/wpa_supplicant/wps_supplicant.c @@ -759,6 +759,11 @@ static void wpas_clear_wps(struct wpa_supplicant *wpa_s) } wpas_wps_clear_ap_info(wpa_s); + + if (!wpa_s->conf->ssid) { + wpa_supplicant_cancel_sched_scan(wpa_s); + wpa_supplicant_cancel_scan(wpa_s); + } }