cfg80211: don't look at wdev->ssid for giwessid
authorJohannes Berg <johannes@sipsolutions.net>
Fri, 10 Jul 2009 15:53:34 +0000 (17:53 +0200)
committerJohn W. Linville <linville@tuxdriver.com>
Fri, 24 Jul 2009 19:05:11 +0000 (15:05 -0400)
This variable is only used internally, _while_ connected.
If we use it, the sequence

# iwconfig wlan1 essid foo
<connects>
# iwconfig wlan1 essid ""
<disconnects>
# iwconfig

will still display "foo" as the SSID afterwards, which
is obviously quite bogus. Fix this by only displaying
the wext SSID, if present.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
net/wireless/wext-sme.c

index c33ea9a..cd5764f 100644 (file)
@@ -209,11 +209,7 @@ int cfg80211_mgd_wext_giwessid(struct net_device *dev,
        data->flags = 0;
 
        wdev_lock(wdev);
-       if (wdev->ssid_len) {
-               data->flags = 1;
-               data->length = wdev->ssid_len;
-               memcpy(ssid, wdev->ssid, data->length);
-       } else if (wdev->wext.connect.ssid && wdev->wext.connect.ssid_len) {
+       if (wdev->wext.connect.ssid && wdev->wext.connect.ssid_len) {
                data->flags = 1;
                data->length = wdev->wext.connect.ssid_len;
                memcpy(ssid, wdev->wext.connect.ssid, data->length);