aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant/dbus
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2013-03-12 12:44:17 -0700
committerDmitry Shmidt <dimitrysh@google.com>2013-03-12 12:44:17 -0700
commit2f023193a0fd630eb82ce6381b80911ad5a3462f (patch)
tree223bec90f0613b193a63b670f3edad96de2e70b6 /wpa_supplicant/dbus
parent26a19b244b797b825575f0851e16e2b2ad5dc174 (diff)
downloadandroid_external_wpa_supplicant_8-2f023193a0fd630eb82ce6381b80911ad5a3462f.tar.gz
android_external_wpa_supplicant_8-2f023193a0fd630eb82ce6381b80911ad5a3462f.tar.bz2
android_external_wpa_supplicant_8-2f023193a0fd630eb82ce6381b80911ad5a3462f.zip
Accumulative patch from commit f46fc73a3f8d0eeb1b43d17769464884f467ac47
P2P: Add a peer entry based on Association Request frame P2P: Clear p2p_in_provisioning flag on group removal Allow SME SA Query to be used by all drivers Android: Sync makefile changes for HT/VHT overrides wpa_supplicant: Support VHT capability overrides wpa_supplicant: Parse int values in different bases and reject invalid wpa_supplicant: Reschedule sched scan after network change Remove unnecessary local variable wpa_supplicant: Handle enabling of one or all networks equally wpa_supplicant: Save prev_sched_ssid only if needed wpa_supplicant: Do not allow too short sched scan nl80211: Use helper function for phy_info_freqs() nl80211: Split phy_info_band() into smaller helper functions nl80211: Use helper function for phy_info_handler() nl80211: Split wiphy_info_handler() into smaller helper functions nl80211: Support splitting wiphy information in dumps Synchronize with wireless-testing.git include/uapi/linux/nl80211.h SAE: Add forgotten commit element validation step for FFC groups SAE: Move commit element validation steps into single location Change-Id: I369b6493f03714f6cfb4ed4a8c10ee6e6e71c1f8 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'wpa_supplicant/dbus')
-rw-r--r--wpa_supplicant/dbus/dbus_new_handlers.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/wpa_supplicant/dbus/dbus_new_handlers.c b/wpa_supplicant/dbus/dbus_new_handlers.c
index 5e069326..80887551 100644
--- a/wpa_supplicant/dbus/dbus_new_handlers.c
+++ b/wpa_supplicant/dbus/dbus_new_handlers.c
@@ -1479,6 +1479,7 @@ DBusMessage * wpas_dbus_handler_remove_network(DBusMessage *message,
char *iface = NULL, *net_id = NULL;
int id;
struct wpa_ssid *ssid;
+ int was_disabled;
dbus_message_get_args(message, NULL, DBUS_TYPE_OBJECT_PATH, &op,
DBUS_TYPE_INVALID);
@@ -1505,6 +1506,8 @@ DBusMessage * wpas_dbus_handler_remove_network(DBusMessage *message,
goto out;
}
+ was_disabled = ssid->disabled;
+
wpas_notify_network_removed(wpa_s, ssid);
if (wpa_config_remove_network(wpa_s->conf, id) < 0) {
@@ -1520,6 +1523,13 @@ DBusMessage * wpas_dbus_handler_remove_network(DBusMessage *message,
if (ssid == wpa_s->current_ssid)
wpa_supplicant_deauthenticate(wpa_s,
WLAN_REASON_DEAUTH_LEAVING);
+ else 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);
+ }
+
out:
os_free(iface);
@@ -1559,6 +1569,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)
{
+ if (wpa_s->sched_scanning)
+ wpa_supplicant_cancel_sched_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;