prevent ar6000 from being deactivated in a inappropriate way
[openwrt.git] / package / madwifi / patches / 356-hidden_ssid.patch
index 92d0480..b87569e 100644 (file)
@@ -5,7 +5,7 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
 
 --- a/net80211/ieee80211_scan_sta.c
 +++ b/net80211/ieee80211_scan_sta.c
-@@ -209,6 +209,19 @@
+@@ -209,6 +209,19 @@ saveie(u_int8_t **iep, const u_int8_t *i
                ieee80211_saveie(iep, ie);
  }
  
@@ -25,7 +25,18 @@ Signed-off-by: Felix Fietkau <nbd@openwrt.org>
  /*
   * Process a beacon or probe response frame; create an
   * entry in the scan cache or update any previous entry.
-@@ -252,8 +265,8 @@
+@@ -233,8 +246,8 @@ sta_add(struct ieee80211_scan_state *ss,
+       SCAN_STA_LOCK_IRQ(st);
+       LIST_FOREACH(se, &st->st_hash[hash], se_hash)
+               if (IEEE80211_ADDR_EQ(se->base.se_macaddr, macaddr) &&
+-                  sp->ssid[1] == se->base.se_ssid[1] &&
+-                  !memcmp(se->base.se_ssid+2, sp->ssid+2, se->base.se_ssid[1]))
++                  (is_empty_ssid(sp->ssid) || (sp->ssid[1] == se->base.se_ssid[1] &&
++                  !memcmp(se->base.se_ssid+2, sp->ssid+2, se->base.se_ssid[1]))))
+                       goto found;
+       MALLOC(se, struct sta_entry *, sizeof(struct sta_entry),
+@@ -252,8 +265,8 @@ found:
        ise = &se->base;
  
        /* XXX ap beaconing multiple ssid w/ same bssid */