diff options
author | sam <sam@FreeBSD.org> | 2005-01-22 20:33:37 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2005-01-22 20:33:37 +0000 |
commit | 822cad40f8527cf77451023f5b4b0e83d7c5a0ee (patch) | |
tree | 4d6a9b598018aee81d0448125f1aed8c53e9e5ce /sys | |
parent | d2fe79f7283949711c920ef3010beb51b7bb5054 (diff) | |
download | FreeBSD-src-822cad40f8527cf77451023f5b4b0e83d7c5a0ee.zip FreeBSD-src-822cad40f8527cf77451023f5b4b0e83d7c5a0ee.tar.gz |
handle potential stale values of bssid in neighbor nodes that
can occur after an ibss merge
Submitted by: David Young
Diffstat (limited to 'sys')
-rw-r--r-- | sys/net80211/ieee80211_output.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c index bb8af17..bb20201 100644 --- a/sys/net80211/ieee80211_output.c +++ b/sys/net80211/ieee80211_output.c @@ -519,7 +519,11 @@ ieee80211_encap(struct ieee80211com *ic, struct mbuf *m, wh->i_fc[1] = IEEE80211_FC1_DIR_NODS; IEEE80211_ADDR_COPY(wh->i_addr1, eh.ether_dhost); IEEE80211_ADDR_COPY(wh->i_addr2, eh.ether_shost); - IEEE80211_ADDR_COPY(wh->i_addr3, ni->ni_bssid); + /* + * NB: always use the bssid from ic_bss as the + * neighbor's may be stale after an ibss merge + */ + IEEE80211_ADDR_COPY(wh->i_addr3, ic->ic_bss->ni_bssid); break; case IEEE80211_M_HOSTAP: wh->i_fc[1] = IEEE80211_FC1_DIR_FROMDS; |