P2P: Reject P2P_FIND and P2P_LISTEN on disabled interface
authorJouni Malinen <jouni@qca.qualcomm.com>
Thu, 15 May 2014 18:34:32 +0000 (21:34 +0300)
committerJouni Malinen <j@w1.fi>
Thu, 15 May 2014 18:34:32 +0000 (21:34 +0300)
This makes the P2P operations behave more consistently with the SCAN
command.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
wpa_supplicant/ctrl_iface.c

index b2936c5..9f01271 100644 (file)
@@ -3933,6 +3933,11 @@ static int p2p_ctrl_find(struct wpa_supplicant *wpa_s, char *cmd)
        char *pos;
        unsigned int search_delay;
 
+       if (wpa_s->wpa_state == WPA_INTERFACE_DISABLED) {
+               wpa_dbg(wpa_s, MSG_INFO,
+                       "Reject P2P_FIND since interface is disabled");
+               return -1;
+       }
        if (os_strstr(cmd, "type=social"))
                type = P2P_FIND_ONLY_SOCIAL;
        else if (os_strstr(cmd, "type=progressive"))
@@ -4084,6 +4089,11 @@ static int p2p_ctrl_connect(struct wpa_supplicant *wpa_s, char *cmd,
 static int p2p_ctrl_listen(struct wpa_supplicant *wpa_s, char *cmd)
 {
        unsigned int timeout = atoi(cmd);
+       if (wpa_s->wpa_state == WPA_INTERFACE_DISABLED) {
+               wpa_dbg(wpa_s, MSG_INFO,
+                       "Reject P2P_LISTEN since interface is disabled");
+               return -1;
+       }
        return wpas_p2p_listen(wpa_s, timeout);
 }