summaryrefslogtreecommitdiff
path: root/gsupplicant
diff options
context:
space:
mode:
authorMohamed Abbas <mabbas@linux.intel.com>2010-12-13 16:32:35 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2010-12-13 16:32:35 +0100
commit3c72d79d8cda698dee7e517fc556516c2b712cbf (patch)
tree893dbd6fdaa73e88f8bc292f3c19ad77e9f43189 /gsupplicant
parent0dafb0f80440a5d24b43b449bdecb5cd79b06242 (diff)
downloadconnman-3c72d79d8cda698dee7e517fc556516c2b712cbf.tar.gz
connman-3c72d79d8cda698dee7e517fc556516c2b712cbf.tar.bz2
connman-3c72d79d8cda698dee7e517fc556516c2b712cbf.zip
gsupplicant: Dont allow scanning while associating
In gsupplicant defer any scanning if association is in progress.
Diffstat (limited to 'gsupplicant')
-rw-r--r--gsupplicant/supplicant.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/gsupplicant/supplicant.c b/gsupplicant/supplicant.c
index 861936e6..0e4f932b 100644
--- a/gsupplicant/supplicant.c
+++ b/gsupplicant/supplicant.c
@@ -2007,6 +2007,21 @@ int g_supplicant_interface_scan(GSupplicantInterface *interface,
if (interface->scanning == TRUE)
return -EALREADY;
+ switch (interface->state) {
+ case G_SUPPLICANT_STATE_AUTHENTICATING:
+ case G_SUPPLICANT_STATE_ASSOCIATING:
+ case G_SUPPLICANT_STATE_ASSOCIATED:
+ case G_SUPPLICANT_STATE_4WAY_HANDSHAKE:
+ case G_SUPPLICANT_STATE_GROUP_HANDSHAKE:
+ return -EBUSY;
+ case G_SUPPLICANT_STATE_UNKNOWN:
+ case G_SUPPLICANT_STATE_DISCONNECTED:
+ case G_SUPPLICANT_STATE_INACTIVE:
+ case G_SUPPLICANT_STATE_SCANNING:
+ case G_SUPPLICANT_STATE_COMPLETED:
+ break;
+ }
+
data = dbus_malloc0(sizeof(*data));
if (data == NULL)
return -ENOMEM;