cfg80211: Advertise ciphers via WE according to driver capability
authorDavid Kilroy <kilroyd@googlemail.com>
Thu, 18 Jun 2009 22:21:14 +0000 (23:21 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 10 Jul 2009 19:01:42 +0000 (15:01 -0400)
Signed-off-by: David Kilroy <kilroyd@googlemail.com>
Acked-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/wireless/wext-compat.c

index 9e56f3569e3e6b59af206bb1525e58c5e4e58761..7dbe6c62e5c8b280c1dc143593b4919a9e2ba5b6 100644 (file)
@@ -204,8 +204,19 @@ int cfg80211_wext_giwrange(struct net_device *dev,
        range->avg_qual.noise = range->max_qual.noise / 2;
        range->avg_qual.updated = range->max_qual.updated;
 
-       range->enc_capa = IW_ENC_CAPA_WPA | IW_ENC_CAPA_WPA2 |
-                         IW_ENC_CAPA_CIPHER_TKIP | IW_ENC_CAPA_CIPHER_CCMP;
+       range->enc_capa = IW_ENC_CAPA_WPA | IW_ENC_CAPA_WPA2;
+
+       for (c = 0; c < wdev->wiphy->n_cipher_suites; c++) {
+               switch (wdev->wiphy->cipher_suites[c]) {
+               case WLAN_CIPHER_SUITE_TKIP:
+                       range->enc_capa |= IW_ENC_CAPA_CIPHER_TKIP;
+                       break;
+
+               case WLAN_CIPHER_SUITE_CCMP:
+                       range->enc_capa |= IW_ENC_CAPA_CIPHER_CCMP;
+                       break;
+               }
+       }
 
        for (band = 0; band < IEEE80211_NUM_BANDS; band ++) {
                int i;