diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2010-08-05 10:53:27 -0700 |
---|---|---|
committer | Dmitry Shmidt <dimitrysh@google.com> | 2010-08-05 10:53:27 -0700 |
commit | 2bc9528c60ee91ec15359f2a736a728775243a1f (patch) | |
tree | 9b702b05f6b9aae58734dd493ef5094be6fb7bd3 | |
parent | aedce906cb93af7b99148c905008cea706a7545f (diff) | |
download | wpa_supplicant_6-2bc9528c60ee91ec15359f2a736a728775243a1f.tar.gz |
WEXT: CSCAN: Increase Home dwell time and reduce passive dwell time
Change-Id: I166510d876c242f36405f18ae68ad4d7f2158bfe
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
-rw-r--r-- | wpa_supplicant/src/drivers/driver_wext.c | 27 | ||||
-rw-r--r-- | wpa_supplicant/src/drivers/driver_wext.h | 7 |
2 files changed, 25 insertions, 9 deletions
diff --git a/wpa_supplicant/src/drivers/driver_wext.c b/wpa_supplicant/src/drivers/driver_wext.c index 0b0ad09..cbde6c1 100644 --- a/wpa_supplicant/src/drivers/driver_wext.c +++ b/wpa_supplicant/src/drivers/driver_wext.c @@ -1197,12 +1197,13 @@ int wpa_driver_wext_combo_scan(void *priv, struct wpa_ssid **ssid_ptr, wpa_printf(MSG_DEBUG, "%s: Start", __func__); + /* Set list of SSIDs */ ssid_orig = (*ssid_ptr); ssid = (*ssid_ptr) ? (*ssid_ptr) : ssid_conf; bp = WEXT_CSCAN_HEADER_SIZE; os_memcpy(buf, WEXT_CSCAN_HEADER, bp); while (i < WEXT_CSCAN_AMOUNT) { - if ((bp + IW_ESSID_MAX_SIZE + 4) >= (int)sizeof(buf)) + if ((bp + IW_ESSID_MAX_SIZE + 10) >= (int)sizeof(buf)) break; *ssid_ptr = ssid; if (ssid == NULL) @@ -1218,8 +1219,20 @@ int wpa_driver_wext_combo_scan(void *priv, struct wpa_ssid **ssid_ptr, ssid = ssid->next; } + /* Set list of channels */ buf[bp++] = WEXT_CSCAN_CHANNEL_SECTION; buf[bp++] = 0; + + /* Set passive dwell time (default is 250) */ + buf[bp++] = WEXT_CSCAN_PASV_DWELL_SECTION; + buf[bp++] = (u8)WEXT_CSCAN_PASV_DWELL_TIME; + buf[bp++] = (u8)(WEXT_CSCAN_PASV_DWELL_TIME >> 8); + + /* Set home dwell time (default is 40) */ + buf[bp++] = WEXT_CSCAN_HOME_DWELL_SECTION; + buf[bp++] = (u8)WEXT_CSCAN_HOME_DWELL_TIME; + buf[bp++] = (u8)(WEXT_CSCAN_HOME_DWELL_TIME >> 8); + os_memset(&iwr, 0, sizeof(iwr)); os_strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ); iwr.u.data.pointer = buf; @@ -2530,22 +2543,19 @@ static int wpa_driver_priv_driver_cmd( void *priv, char *cmd, char *buf, size_t if (os_strcasecmp(cmd, "RSSI-APPROX") == 0) { os_strncpy(cmd, "RSSI", MAX_DRV_CMD_SIZE); - } - else if( os_strncasecmp(cmd, "SCAN-CHANNELS", 13) == 0 ) { + } else if( os_strncasecmp(cmd, "SCAN-CHANNELS", 13) == 0 ) { int no_of_chan; no_of_chan = atoi(cmd + 13); os_snprintf(cmd, MAX_DRV_CMD_SIZE, "COUNTRY %s", wpa_driver_get_country_code(no_of_chan)); - } - else if (os_strcasecmp(cmd, "STOP") == 0) { + } else if (os_strcasecmp(cmd, "STOP") == 0) { if ((wpa_driver_wext_get_ifflags(drv, &flags) == 0) && (flags & IFF_UP)) { wpa_printf(MSG_ERROR, "WEXT: %s when iface is UP", cmd); wpa_driver_wext_set_ifflags(drv, flags & ~IFF_UP); } - } - else if( os_strcasecmp(cmd, "RELOAD") == 0 ) { + } else if( os_strcasecmp(cmd, "RELOAD") == 0 ) { wpa_printf(MSG_DEBUG,"Reload command"); wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "HANGED"); return ret; @@ -2566,8 +2576,7 @@ static int wpa_driver_priv_driver_cmd( void *priv, char *cmd, char *buf, size_t drv->errors = 0; wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "HANGED"); } - } - else { + } else { drv->errors = 0; ret = 0; if ((os_strcasecmp(cmd, "RSSI") == 0) || diff --git a/wpa_supplicant/src/drivers/driver_wext.h b/wpa_supplicant/src/drivers/driver_wext.h index 2e93ba5..97ba5c6 100644 --- a/wpa_supplicant/src/drivers/driver_wext.h +++ b/wpa_supplicant/src/drivers/driver_wext.h @@ -100,6 +100,13 @@ int wpa_driver_wext_keymgmt2wext(int keymgmt); #define WEXT_CSCAN_HEADER_SIZE 12 #define WEXT_CSCAN_SSID_SECTION 'S' #define WEXT_CSCAN_CHANNEL_SECTION 'C' +#define WEXT_CSCAN_NPROBE_SECTION 'N' +#define WEXT_CSCAN_ACTV_DWELL_SECTION 'A' +#define WEXT_CSCAN_PASV_DWELL_SECTION 'P' +#define WEXT_CSCAN_HOME_DWELL_SECTION 'H' +#define WEXT_CSCAN_TYPE_SECTION 'T' +#define WEXT_CSCAN_PASV_DWELL_TIME 130 +#define WEXT_CSCAN_HOME_DWELL_TIME 130 #endif #endif /* DRIVER_WEXT_H */ |