diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2009-11-23 10:37:02 -0800 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2009-11-23 10:37:02 -0800 |
commit | 68b591fa9047f2df4ac6b346e10e4879f84e95ee (patch) | |
tree | 6e0c3d80e8ff76b99df4cfa27bf951b267dbab9f | |
parent | cef0cae916e22f4e2179b88e7ef57a3372ab7ada (diff) | |
parent | c7da28cb6aa09404070f3479be54e23609552feb (diff) | |
download | wpa_supplicant-68b591fa9047f2df4ac6b346e10e4879f84e95ee.tar.gz |
am c7da28cb: Set interface down in case of "driver stop" command (b/2271658)
Merge commit 'c7da28cb6aa09404070f3479be54e23609552feb' into eclair-mr2
* commit 'c7da28cb6aa09404070f3479be54e23609552feb':
Set interface down in case of "driver stop" command (b/2271658)
-rw-r--r-- | driver_wext.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/driver_wext.c b/driver_wext.c index e939a00..c75dd4a 100644 --- a/driver_wext.c +++ b/driver_wext.c @@ -2520,12 +2520,12 @@ static char *wpa_driver_get_country_code(int channels) return country; } -static int wpa_driver_priv_driver_cmd( void *priv, char *cmd, char *buf, size_t buf_len ) +static int wpa_driver_priv_driver_cmd(void *priv, char *cmd, char *buf, size_t buf_len) { struct wpa_driver_wext_data *drv = priv; struct wpa_supplicant *wpa_s = (struct wpa_supplicant *)(drv->ctx); struct iwreq iwr; - int ret = 0; + int ret = 0, flags; wpa_printf(MSG_DEBUG, "%s %s len = %d", __func__, cmd, buf_len); @@ -2539,6 +2539,15 @@ static int wpa_driver_priv_driver_cmd( void *priv, char *cmd, char *buf, size_t os_snprintf(cmd, MAX_DRV_CMD_SIZE, "COUNTRY %s", wpa_driver_get_country_code(no_of_chan)); } + 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); + } + } + os_memset(&iwr, 0, sizeof(iwr)); os_strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ); os_memcpy(buf, cmd, strlen(cmd) + 1); |