X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/ac75d1363c718d30cec1a43f300da83d0f0aa65d..a433c026e505541eeeda776619245b2bc01df1a9:/package/iwinfo/src/iwinfo_nl80211.c diff --git a/package/iwinfo/src/iwinfo_nl80211.c b/package/iwinfo/src/iwinfo_nl80211.c index 4672b9d64..e8cfb902f 100644 --- a/package/iwinfo/src/iwinfo_nl80211.c +++ b/package/iwinfo/src/iwinfo_nl80211.c @@ -387,10 +387,13 @@ static char * nl80211_wpactl_info(const char *ifname, const char *cmd, goto out; - send(sock, "ATTACH", 6, 0); + if (event) + { + send(sock, "ATTACH", 6, 0); - if (nl80211_wpactl_recv(sock, buffer, sizeof(buffer)) <= 0) - goto out; + if (nl80211_wpactl_recv(sock, buffer, sizeof(buffer)) <= 0) + goto out; + } send(sock, cmd, strlen(cmd), 0); @@ -405,7 +408,7 @@ static char * nl80211_wpactl_info(const char *ifname, const char *cmd, break; } - if ((!event && buffer[0] != '<') || strstr(buffer, event)) + if ((!event && buffer[0] != '<') || (event && strstr(buffer, event))) break; } @@ -559,6 +562,9 @@ void nl80211_close(void) { if (nls) { + if (nls->nl80211) + genl_family_put(nls->nl80211); + if (nls->nl_sock) nl_socket_free(nls->nl_sock);