nl80211: Fix SIGNAL_POLL in IBSS and mesh
authorJouni Malinen <jouni@qca.qualcomm.com>
Thu, 26 Nov 2015 15:47:36 +0000 (17:47 +0200)
committerJouni Malinen <j@w1.fi>
Thu, 26 Nov 2015 15:57:07 +0000 (17:57 +0200)
NL80211_CMD_GET_STATION does not work with the IBSS/mesh BSSID, so clear
the signal strength instead of returning failure when SIGNAL_POLL is
used in an IBSS/mesh.

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
src/drivers/driver_nl80211.c

index 43dd0b1..f24bdba 100644 (file)
@@ -6560,8 +6560,12 @@ static int nl80211_signal_poll(void *priv, struct wpa_signal_info *si)
 
        os_memset(si, 0, sizeof(*si));
        res = nl80211_get_link_signal(drv, si);
-       if (res != 0)
-               return res;
+       if (res) {
+               if (drv->nlmode != NL80211_IFTYPE_ADHOC &&
+                   drv->nlmode != NL80211_IFTYPE_MESH_POINT)
+                       return res;
+               si->current_signal = 0;
+       }
 
        res = nl80211_get_channel_width(drv, si);
        if (res != 0)