X-Git-Url: http://www.project-moonshot.org/gitweb/?a=blobdiff_plain;f=wpa_supplicant%2Fctrl_iface.c;h=dc44ae41c7c834b36c37054524e13b72d0754d69;hb=725fc39e07b3a9c92fd65f6bb66402824a18dda8;hp=e376c9549aaafbffb6408c5d15682b7ce856b57f;hpb=14f79078903d3cd9d1da2f9e18360fb4bb2f46c8;p=mech_eap.git diff --git a/wpa_supplicant/ctrl_iface.c b/wpa_supplicant/ctrl_iface.c index e376c95..dc44ae4 100644 --- a/wpa_supplicant/ctrl_iface.c +++ b/wpa_supplicant/ctrl_iface.c @@ -2216,10 +2216,14 @@ static int wpa_supplicant_ctrl_iface_remove_network( { int id; struct wpa_ssid *ssid; + int was_disabled; /* cmd: "" or "all" */ if (os_strcmp(cmd, "all") == 0) { wpa_printf(MSG_DEBUG, "CTRL_IFACE: REMOVE_NETWORK all"); + if (wpa_s->sched_scanning) + wpa_supplicant_cancel_sched_scan(wpa_s); + eapol_sm_invalidate_cached_session(wpa_s->eapol); if (wpa_s->current_ssid) { #ifdef CONFIG_SME @@ -2272,12 +2276,21 @@ static int wpa_supplicant_ctrl_iface_remove_network( WLAN_REASON_DEAUTH_LEAVING); } + was_disabled = ssid->disabled; + if (wpa_config_remove_network(wpa_s->conf, id) < 0) { wpa_printf(MSG_DEBUG, "CTRL_IFACE: Not able to remove the " "network id=%d", id); return -1; } + if (!was_disabled && wpa_s->sched_scanning) { + wpa_printf(MSG_DEBUG, "Stop ongoing sched_scan to remove " + "network from filters"); + wpa_supplicant_cancel_sched_scan(wpa_s); + wpa_supplicant_req_scan(wpa_s, 0, 0); + } + return 0; }