summaryrefslogtreecommitdiffstats
path: root/sys/net80211/ieee80211_ioctl.c
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2009-04-26 20:55:31 +0000
committersam <sam@FreeBSD.org>2009-04-26 20:55:31 +0000
commit3bb993c3f7bf41a691efb6c6c953b1601bfa85b3 (patch)
tree0de54adcfe89f61bfd5d53b3066eafa09e194d95 /sys/net80211/ieee80211_ioctl.c
parentb9963f1636729433e21ced13e73fb604d7a83a77 (diff)
downloadFreeBSD-src-3bb993c3f7bf41a691efb6c6c953b1601bfa85b3.zip
FreeBSD-src-3bb993c3f7bf41a691efb6c6c953b1601bfa85b3.tar.gz
correct bssid reporting for wds vaps
Diffstat (limited to 'sys/net80211/ieee80211_ioctl.c')
-rw-r--r--sys/net80211/ieee80211_ioctl.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c
index c148214..4e018cb 100644
--- a/sys/net80211/ieee80211_ioctl.c
+++ b/sys/net80211/ieee80211_ioctl.c
@@ -915,10 +915,13 @@ ieee80211_ioctl_get80211(struct ieee80211vap *vap, u_long cmd,
case IEEE80211_IOC_BSSID:
if (ireq->i_len != IEEE80211_ADDR_LEN)
return EINVAL;
- error = copyout(vap->iv_state == IEEE80211_S_RUN ?
- vap->iv_bss->ni_bssid :
- vap->iv_des_bssid,
- ireq->i_data, ireq->i_len);
+ if (vap->iv_state == IEEE80211_S_RUN) {
+ error = copyout(vap->iv_opmode == IEEE80211_M_WDS ?
+ vap->iv_bss->ni_macaddr : vap->iv_bss->ni_bssid,
+ ireq->i_data, ireq->i_len);
+ } else
+ error = copyout(vap->iv_des_bssid, ireq->i_data,
+ ireq->i_len);
break;
case IEEE80211_IOC_WPAIE:
error = ieee80211_ioctl_getwpaie(vap, ireq, ireq->i_type);
OpenPOWER on IntegriCloud