aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2011-02-22 11:25:10 -0800
committerIrfan Sheriff <isheriff@google.com>2011-02-22 16:41:33 -0800
commitc5f70d689ab6e50a51caa2d13fa85812574fc32a (patch)
treec8481fdc0df2efc6777704b02f3b37eb969e0966
parentf09d4bb307a8a925c098942868c035b67d248e31 (diff)
downloadwpa_supplicant_6-c5f70d689ab6e50a51caa2d13fa85812574fc32a.tar.gz
WEXT: Suppress scan errors during background scan
Change-Id: Iabc142f7d36955b55ac39605fe524b5edcc8c43c Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
-rw-r--r--wpa_supplicant/src/drivers/driver_wext.c8
-rw-r--r--wpa_supplicant/src/drivers/driver_wext.h1
2 files changed, 8 insertions, 1 deletions
diff --git a/wpa_supplicant/src/drivers/driver_wext.c b/wpa_supplicant/src/drivers/driver_wext.c
index 4982bff..c4dd036 100644
--- a/wpa_supplicant/src/drivers/driver_wext.c
+++ b/wpa_supplicant/src/drivers/driver_wext.c
@@ -969,6 +969,7 @@ void * wpa_driver_wext_init(void *ctx, const char *ifname)
drv->errors = 0;
drv->driver_is_started = TRUE;
drv->skip_disconnect = 0;
+ drv->bgscan_enabled = 0;
#endif
wpa_driver_wext_finish_drv_init(drv);
@@ -1254,7 +1255,10 @@ int wpa_driver_wext_combo_scan(void *priv, struct wpa_ssid **ssid_ptr,
iwr.u.data.length = bp;
if ((ret = ioctl(drv->ioctl_sock, SIOCSIWPRIV, &iwr)) < 0) {
- wpa_printf(MSG_ERROR, "ioctl[SIOCSIWPRIV] (cscan): %d", ret);
+ if (!drv->bgscan_enabled)
+ wpa_printf(MSG_ERROR, "ioctl[SIOCSIWPRIV] (cscan): %d", ret);
+ else
+ ret = 0; /* Hide error in case of bg scan */
*ssid_ptr = ssid_orig;
/* goto old_scan; */
}
@@ -2704,8 +2708,10 @@ static int wpa_driver_priv_driver_cmd( void *priv, char *cmd, char *buf, size_t
return ret;
}
os_strncpy(cmd, "PNOFORCE 1", MAX_DRV_CMD_SIZE);
+ drv->bgscan_enabled = 1;
} else if( os_strcasecmp(cmd, "BGSCAN-STOP") == 0 ) {
os_strncpy(cmd, "PNOFORCE 0", MAX_DRV_CMD_SIZE);
+ drv->bgscan_enabled = 0;
}
os_memset(&iwr, 0, sizeof(iwr));
diff --git a/wpa_supplicant/src/drivers/driver_wext.h b/wpa_supplicant/src/drivers/driver_wext.h
index 7ba31e8..b9f50ce 100644
--- a/wpa_supplicant/src/drivers/driver_wext.h
+++ b/wpa_supplicant/src/drivers/driver_wext.h
@@ -47,6 +47,7 @@ struct wpa_driver_wext_data {
int errors;
int driver_is_started;
int skip_disconnect;
+ int bgscan_enabled;
#endif
};