1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-22 11:17:19 +00:00

fix associd check for adhoc mode

Reviewed by:	jhay
This commit is contained in:
Sam Leffler 2008-10-25 23:28:04 +00:00
parent 643024a2b1
commit 6ff2e10a56
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=184271

View File

@ -203,24 +203,19 @@ ieee80211_start(struct ifnet *ifp)
continue;
}
/* XXX AUTH'd */
if (ni->ni_associd == 0) {
/*
* Destination is not associated; must special
* case DWDS where we point iv_bss at the node
* for the associated station.
* XXX adhoc mode?
*/
if (ni != vap->iv_bss || IS_DWDS(vap)) {
IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_OUTPUT,
eh->ether_dhost, NULL,
"sta not associated (type 0x%04x)",
htons(eh->ether_type));
vap->iv_stats.is_tx_notassoc++;
ifp->if_oerrors++;
m_freem(m);
ieee80211_free_node(ni);
continue;
}
/* XXX mark vap to identify if associd is required */
if (ni->ni_associd == 0 &&
(vap->iv_opmode == IEEE80211_M_STA ||
vap->iv_opmode == IEEE80211_M_HOSTAP || IS_DWDS(vap))) {
IEEE80211_DISCARD_MAC(vap, IEEE80211_MSG_OUTPUT,
eh->ether_dhost, NULL,
"sta not associated (type 0x%04x)",
htons(eh->ether_type));
vap->iv_stats.is_tx_notassoc++;
ifp->if_oerrors++;
m_freem(m);
ieee80211_free_node(ni);
continue;
}
if ((ni->ni_flags & IEEE80211_NODE_PWR_MGT) &&
(m->m_flags & M_PWR_SAV) == 0) {