mesh: Use mesh id instead of SSID in BSS table
authorJason Abele <jason.abele@gmail.com>
Mon, 1 Sep 2014 04:23:32 +0000 (00:23 -0400)
committerJouni Malinen <j@w1.fi>
Sat, 25 Oct 2014 14:45:35 +0000 (17:45 +0300)
Signed-off-by: Javier Lopez <jlopex@gmail.com>
Signed-off-by: Jason Abele <jason.abele@gmail.com>
wpa_supplicant/bss.c

index 7d01a5f..9b9289f 100644 (file)
@@ -593,7 +593,7 @@ void wpa_bss_update_scan_res(struct wpa_supplicant *wpa_s,
                             struct wpa_scan_res *res,
                             struct os_reltime *fetch_time)
 {
-       const u8 *ssid, *p2p;
+       const u8 *ssid, *p2p, *mesh;
        struct wpa_bss *bss;
 
        if (wpa_s->conf->ignore_old_scan_res) {
@@ -643,6 +643,11 @@ void wpa_bss_update_scan_res(struct wpa_supplicant *wpa_s,
 
        /* TODO: add option for ignoring BSSes we are not interested in
         * (to save memory) */
+
+       mesh = wpa_scan_get_ie(res, WLAN_EID_MESH_ID);
+       if (mesh && mesh[1] <= 32)
+               ssid = mesh;
+
        bss = wpa_bss_get(wpa_s, res->bssid, ssid + 2, ssid[1]);
        if (bss == NULL)
                bss = wpa_bss_add(wpa_s, ssid + 2, ssid[1], res, fetch_time);