diff options
author | sam <sam@FreeBSD.org> | 2009-04-26 20:55:31 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2009-04-26 20:55:31 +0000 |
commit | 3bb993c3f7bf41a691efb6c6c953b1601bfa85b3 (patch) | |
tree | 0de54adcfe89f61bfd5d53b3066eafa09e194d95 | |
parent | b9963f1636729433e21ced13e73fb604d7a83a77 (diff) | |
download | FreeBSD-src-3bb993c3f7bf41a691efb6c6c953b1601bfa85b3.zip FreeBSD-src-3bb993c3f7bf41a691efb6c6c953b1601bfa85b3.tar.gz |
correct bssid reporting for wds vaps
-rw-r--r-- | sys/net80211/ieee80211_ioctl.c | 11 |
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); |