aboutsummaryrefslogtreecommitdiffstats
path: root/net/mac80211/wext.c
diff options
context:
space:
mode:
authorAbhijeet Kolekar <abhijeet.kolekar@intel.com>2008-05-23 13:15:26 -0400
committerJohn W. Linville <linville@tuxdriver.com>2008-05-28 16:43:46 -0400
commitd4231ca3e162387a2b6964dacaa83604e065c4e9 (patch)
treedfb289e314ac7475c778a3ea8d3050d4652c31b1 /net/mac80211/wext.c
parent633257d3db547e7553500f05e0aa2692c876d7a5 (diff)
mac80211 : Fixes the status message for iwconfig
iwconfig was showing incorrect status messages when disassociated. Patch fixes this by always checking for association status in ioctl calls for getting ap address. Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com> Acked-by: Dan Williams <dcbw@redhat.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'net/mac80211/wext.c')
-rw-r--r--net/mac80211/wext.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/net/mac80211/wext.c b/net/mac80211/wext.c
index 457ebf9e85ae..8311bb24f9f3 100644
--- a/net/mac80211/wext.c
+++ b/net/mac80211/wext.c
@@ -489,9 +489,14 @@ static int ieee80211_ioctl_giwap(struct net_device *dev,
489 sdata = IEEE80211_DEV_TO_SUB_IF(dev); 489 sdata = IEEE80211_DEV_TO_SUB_IF(dev);
490 if (sdata->vif.type == IEEE80211_IF_TYPE_STA || 490 if (sdata->vif.type == IEEE80211_IF_TYPE_STA ||
491 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) { 491 sdata->vif.type == IEEE80211_IF_TYPE_IBSS) {
492 ap_addr->sa_family = ARPHRD_ETHER; 492 if (sdata->u.sta.state == IEEE80211_ASSOCIATED) {
493 memcpy(&ap_addr->sa_data, sdata->u.sta.bssid, ETH_ALEN); 493 ap_addr->sa_family = ARPHRD_ETHER;
494 return 0; 494 memcpy(&ap_addr->sa_data, sdata->u.sta.bssid, ETH_ALEN);
495 return 0;
496 } else {
497 memset(&ap_addr->sa_data, 0, ETH_ALEN);
498 return 0;
499 }
495 } else if (sdata->vif.type == IEEE80211_IF_TYPE_WDS) { 500 } else if (sdata->vif.type == IEEE80211_IF_TYPE_WDS) {
496 ap_addr->sa_family = ARPHRD_ETHER; 501 ap_addr->sa_family = ARPHRD_ETHER;
497 memcpy(&ap_addr->sa_data, sdata->u.wds.remote_addr, ETH_ALEN); 502 memcpy(&ap_addr->sa_data, sdata->u.wds.remote_addr, ETH_ALEN);