summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2005-01-22 20:33:37 +0000
committersam <sam@FreeBSD.org>2005-01-22 20:33:37 +0000
commit822cad40f8527cf77451023f5b4b0e83d7c5a0ee (patch)
tree4d6a9b598018aee81d0448125f1aed8c53e9e5ce /sys
parentd2fe79f7283949711c920ef3010beb51b7bb5054 (diff)
downloadFreeBSD-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.c6
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;
OpenPOWER on IntegriCloud