aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJouni Malinen <j@w1.fi>2012-08-09 19:40:57 (GMT)
committerJouni Malinen <j@w1.fi>2012-08-09 20:18:32 (GMT)
commit02b8a9e28d8ec7d719e6d20e35bc615c72943876 (patch)
tree5567e04936f78a8eb92a486e1ca43ec4c047b57f
parent7bd977b16764e402a66515d0b92ef5e09ec51f9a (diff)
downloadhostap-02b8a9e28d8ec7d719e6d20e35bc615c72943876.zip
hostap-02b8a9e28d8ec7d719e6d20e35bc615c72943876.tar.gz
hostap-02b8a9e28d8ec7d719e6d20e35bc615c72943876.tar.bz2
AOSP: ctrl_iface interface=
-rw-r--r--wpa_supplicant/ctrl_iface_unix.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/wpa_supplicant/ctrl_iface_unix.c b/wpa_supplicant/ctrl_iface_unix.c
index 6513604..b4af793 100644
--- a/wpa_supplicant/ctrl_iface_unix.c
+++ b/wpa_supplicant/ctrl_iface_unix.c
@@ -164,6 +164,35 @@ static void wpa_supplicant_ctrl_iface_receive(int sock, void *eloop_ctx,
else
reply_len = 2;
} else {
+#if defined(CONFIG_P2P) && defined(ANDROID_P2P)
+ char *ifname = NULL, *arg;
+ char cmd[256];
+ /* Skip the command name */
+ arg = os_strchr(buf, ' ');
+ if (arg) {
+ *arg++ = '\0';
+ os_strncpy(cmd, buf, sizeof(cmd));
+ /* Now search for interface= */
+ if (os_strncmp(arg, "interface=", 10) == 0) {
+ ifname = arg + 10;
+ arg = os_strchr(ifname, ' ');
+ if (arg)
+ *arg++ = '\0';
+ wpa_printf(MSG_DEBUG, "Found interface= in the arg %s ifname %s", arg, ifname);
+ for (wpa_s = wpa_s->global->ifaces; wpa_s; wpa_s = wpa_s->next) {
+ if (os_strcmp(wpa_s->ifname, ifname) == 0)
+ break;
+ }
+ if (wpa_s == NULL) {
+ wpa_printf(MSG_ERROR, "P2P: interface=%s does not exist", ifname);
+ wpa_s = eloop_ctx;
+ }
+ }
+ if (arg)
+ os_snprintf(buf, sizeof(buf), "%s %s", cmd, arg);
+ }
+ wpa_printf(MSG_DEBUG, "wpa_s %p cmd %s", wpa_s, buf);
+#endif /* defined CONFIG_P2P && defined ANDROID_P2P */
reply = wpa_supplicant_ctrl_iface_process(wpa_s, buf,
&reply_len);
}