diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2011-07-07 14:22:14 -0700 |
---|---|---|
committer | Arik Nemtsov <arik@wizery.com> | 2012-08-02 13:03:58 +0300 |
commit | eb0483b44624171df9aa1c25c0bce5636af7fbd1 (patch) | |
tree | 74080ddf7fb6f4164b3291d1ce7d2606aa049678 /src/drivers | |
parent | dbac6bbeef06512362a9b72c70fe54db22514344 (diff) | |
download | external_wpa_supplicant_8_ti-eb0483b44624171df9aa1c25c0bce5636af7fbd1.zip external_wpa_supplicant_8_ti-eb0483b44624171df9aa1c25c0bce5636af7fbd1.tar.gz external_wpa_supplicant_8_ti-eb0483b44624171df9aa1c25c0bce5636af7fbd1.tar.bz2 |
nl80211: Add private function support
Change-Id: Iba9b2ac21f5c7760900c57826b7048ee58928338
Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'src/drivers')
-rw-r--r-- | src/drivers/driver_nl80211.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/drivers/driver_nl80211.c b/src/drivers/driver_nl80211.c index 93dbec4..b9def3a 100644 --- a/src/drivers/driver_nl80211.c +++ b/src/drivers/driver_nl80211.c @@ -9166,6 +9166,39 @@ static int android_pno_stop(struct i802_bss *bss) return android_priv_cmd(bss, "PNOFORCE 0"); } + +static int wpa_driver_nl80211_driver_cmd(void *priv, char *cmd, char *buf, + size_t buf_len) +{ + struct i802_bss *bss = priv; + struct wpa_driver_nl80211_data *drv = bss->drv; + int ret = 0; + + if (os_strcasecmp(cmd, "STOP") == 0) { + linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 0); + wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "STOPPED"); + } else if (os_strcasecmp(cmd, "START") == 0) { + linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 1); + wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "STARTED"); + } else if (os_strcasecmp(cmd, "MACADDR") == 0) { + u8 macaddr[ETH_ALEN] = {}; + + ret = linux_get_ifhwaddr(drv->global->ioctl_sock, bss->ifname, + macaddr); + if (!ret) + ret = os_snprintf(buf, buf_len, + "Macaddr = " MACSTR "\n", + MAC2STR(macaddr)); + } else if (os_strcasecmp(cmd, "RELOAD") == 0) { + wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "HANGED"); + } else { + wpa_printf(MSG_ERROR, "Unsupported command: %s", cmd); + ret = -1; + } + + return ret; +} + #endif /* ANDROID */ @@ -9247,4 +9280,7 @@ const struct wpa_driver_ops wpa_driver_nl80211_ops = { .send_tdls_mgmt = nl80211_send_tdls_mgmt, .tdls_oper = nl80211_tdls_oper, #endif /* CONFIG_TDLS */ +#ifdef ANDROID + .driver_cmd = wpa_driver_nl80211_driver_cmd, +#endif /* ANDROID */ }; |