]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
TDLS: Move AID=1 workaround into driver_nl80211.c
authorJouni Malinen <jouni@qca.qualcomm.com>
Mon, 6 May 2013 12:57:03 +0000 (15:57 +0300)
committerJouni Malinen <j@w1.fi>
Mon, 6 May 2013 12:57:03 +0000 (15:57 +0300)
The use of AID=1 for the nl80211 dummy STA case is specific to the
driver (cfg80211), so better move this into the driver wrapper instead
of generic TDLS implementation.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

src/drivers/driver_nl80211.c
wpa_supplicant/wpas_glue.c

index 654438cecfdfe419288bead3dcaa50cdd5fc150f..48b0c2efbb7d1a9d44460401a6d5a111a3cb65a8 100644 (file)
@@ -6070,8 +6070,18 @@ static int wpa_driver_nl80211_sta_add(void *priv,
        wpa_hexdump(MSG_DEBUG, "  * supported rates", params->supp_rates,
                    params->supp_rates_len);
        if (!params->set) {
-               wpa_printf(MSG_DEBUG, "  * aid=%u", params->aid);
-               NLA_PUT_U16(msg, NL80211_ATTR_STA_AID, params->aid);
+               if (params->aid) {
+                       wpa_printf(MSG_DEBUG, "  * aid=%u", params->aid);
+                       NLA_PUT_U16(msg, NL80211_ATTR_STA_AID, params->aid);
+               } else {
+                       /*
+                        * cfg80211 validates that AID is non-zero, so we have
+                        * to make this a non-zero value for the TDLS case where
+                        * a dummy STA entry is used for now.
+                        */
+                       wpa_printf(MSG_DEBUG, "  * aid=1 (TDLS workaround)");
+                       NLA_PUT_U16(msg, NL80211_ATTR_STA_AID, 1);
+               }
                wpa_printf(MSG_DEBUG, "  * listen_interval=%u",
                           params->listen_interval);
                NLA_PUT_U16(msg, NL80211_ATTR_STA_LISTEN_INTERVAL,
index faaf4926e96ea95dbe45548cca9aac193f6013fe..1a64df38cf884428b77288ba23c349fa8adfee7b 100644 (file)
@@ -563,7 +563,7 @@ static int wpa_supplicant_tdls_peer_addset(
        os_memset(&params, 0, sizeof(params));
 
        params.addr = peer;
-       params.aid = add ? 1 : aid;
+       params.aid = aid;
        params.capability = capability;
        params.flags = WPA_STA_TDLS_PEER | WPA_STA_AUTHORIZED;