diff options
-rw-r--r-- | wifi/wifi.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/wifi/wifi.c b/wifi/wifi.c index cd9bf65..f669693 100644 --- a/wifi/wifi.c +++ b/wifi/wifi.c @@ -727,10 +727,10 @@ int wifi_ctrl_recv(int index, char *reply, size_t *reply_len) } if (rfds[0].revents & POLLIN) { return wpa_ctrl_recv(monitor_conn[index], reply, reply_len); - } else { - return -2; + } else if (rfds[1].revents & POLLIN) { + wifi_close_sockets(index); } - return 0; + return -2; } int wifi_wait_on_socket(int index, char *buf, size_t buflen) @@ -837,9 +837,9 @@ void wifi_close_supplicant_connection(const char *ifname) * STA connection does not need it since supplicant gets shutdown */ TEMP_FAILURE_RETRY(write(exit_sockets[SECONDARY][0], "T", 1)); - wifi_close_sockets(SECONDARY); - //closing p2p connection does not need a wait on - //supplicant stop + /* p2p sockets are closed after the monitor thread + * receives the terminate on the exit socket + */ return; } |