Skip to content

Commit

Permalink
Set interface down in case of "driver stop" command (b/2271658)
Browse files Browse the repository at this point in the history
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
  • Loading branch information
Dmitry Shmidt committed Nov 21, 2009
1 parent 0ebb71c commit c7da28c
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions driver_wext.c
Expand Up @@ -2520,12 +2520,12 @@ static char *wpa_driver_get_country_code(int channels)
return country; 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_driver_wext_data *drv = priv;
struct wpa_supplicant *wpa_s = (struct wpa_supplicant *)(drv->ctx); struct wpa_supplicant *wpa_s = (struct wpa_supplicant *)(drv->ctx);
struct iwreq iwr; struct iwreq iwr;
int ret = 0; int ret = 0, flags;


wpa_printf(MSG_DEBUG, "%s %s len = %d", __func__, cmd, buf_len); wpa_printf(MSG_DEBUG, "%s %s len = %d", __func__, cmd, buf_len);


Expand All @@ -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", os_snprintf(cmd, MAX_DRV_CMD_SIZE, "COUNTRY %s",
wpa_driver_get_country_code(no_of_chan)); 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_memset(&iwr, 0, sizeof(iwr));
os_strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ); os_strncpy(iwr.ifr_name, drv->ifname, IFNAMSIZ);
os_memcpy(buf, cmd, strlen(cmd) + 1); os_memcpy(buf, cmd, strlen(cmd) + 1);
Expand Down

0 comments on commit c7da28c

Please sign in to comment.