]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
wpa_cli: Fix global control interface for STA-FIRST/STA-NEXT
authorDmitry Shmidt <dimitrysh@google.com>
Mon, 22 May 2017 21:38:58 +0000 (21:38 +0000)
committerJouni Malinen <j@w1.fi>
Mon, 17 Jul 2017 11:54:42 +0000 (14:54 +0300)
If global control interface is used and wlan doesn't support P2P,
   wpa_s->global->p2p == NULL, and log shows:
wpa_supplicant: Failed to create interface p2p-dev-wlan0: -5 (I/O error)
wpa_supplicant: nl80211: Failed to create a P2P Device interface p2p-dev-wlan0
wpa_supplicant: P2P: Failed to enable P2P Device interface

Then STA-FIRST/STA-NEXT is not going to redirect to any interface,
making update_stations(ctrl_conn) is stuck in never-ending loop:

sendto(3, "STA-FIRST", 9, 0, NULL, 0)   = 9
pselect6(4, [3], NULL, NULL, {10, 0}, NULL) = 1 (in [3], left {9, 999995000})
recvfrom(3, "UNKNOWN COMMAND\n", 4095, 0, NULL, NULL) = 16
sendto(3, "STA-NEXT UNKNOWN COMMAND", 24, 0, NULL, 0) = 24
pselect6(4, [3], NULL, NULL, {10, 0}, NULL) = 1 (in [3], left {9, 999995833})
recvfrom(3, "UNKNOWN COMMAND\n", 4095, 0, NULL, NULL) = 16
sendto(3, "STA-NEXT UNKNOWN COMMAND", 24, 0, NULL, 0) = 24
pselect6(4, [3], NULL, NULL, {10, 0}, NULL) = 1 (in [3], left {9, 999995000})
recvfrom(3, "UNKNOWN COMMAND\n", 4095, 0, NULL, NULL) = 16
sendto(3, "STA-NEXT UNKNOWN COMMAND", 24, 0, NULL, 0) = 24

Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
wpa_supplicant/wpa_cli.c

index 7ec2377957996725e971cdca231ff8b3fbeadf41..10cd2439277bba1a13be981d0ed854f442130323 100644 (file)
@@ -1823,7 +1823,8 @@ static int wpa_ctrl_command_sta(struct wpa_ctrl *ctrl, const char *cmd,
        }
 
        buf[len] = '\0';
-       if (os_memcmp(buf, "FAIL", 4) == 0)
+       if (os_memcmp(buf, "FAIL", 4) == 0 ||
+           os_memcmp(buf, "UNKNOWN COMMAND", 15) == 0)
                return -1;
        if (print)
                printf("%s", buf);