aboutsummaryrefslogtreecommitdiffstats
path: root/src/drivers
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2011-07-07 14:22:14 -0700
committerArik Nemtsov <arik@wizery.com>2012-08-02 13:03:58 +0300
commiteb0483b44624171df9aa1c25c0bce5636af7fbd1 (patch)
tree74080ddf7fb6f4164b3291d1ce7d2606aa049678 /src/drivers
parentdbac6bbeef06512362a9b72c70fe54db22514344 (diff)
downloadexternal_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.c36
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 */
};