summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
Diffstat (limited to 'sys')
-rw-r--r--sys/dev/wi/wi_hostap.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/sys/dev/wi/wi_hostap.c b/sys/dev/wi/wi_hostap.c
index 905e991..7c6633e 100644
--- a/sys/dev/wi/wi_hostap.c
+++ b/sys/dev/wi/wi_hostap.c
@@ -693,6 +693,17 @@ wihap_assoc_req(struct wi_softc *sc, struct wi_frame *rxfrm,
/* Pull out request parameters. */
capinfo = take_hword(&pkt, &len);
lstintvl = take_hword(&pkt, &len);
+
+ if ((rxfrm->wi_frame_ctl & htole16(WI_FCTL_STYPE)) ==
+ htole16(WI_STYPE_MGMT_REASREQ)) {
+ if (len < 6)
+ return;
+ /* Eat the MAC address of the current AP */
+ take_hword(&pkt, &len);
+ take_hword(&pkt, &len);
+ take_hword(&pkt, &len);
+ }
+
if ((ssid_len = take_tlv(&pkt, &len, IEEE80211_ELEMID_SSID,
ssid, sizeof(ssid) - 1))<0)
return;
@@ -701,13 +712,6 @@ wihap_assoc_req(struct wi_softc *sc, struct wi_frame *rxfrm,
rates, sizeof(rates)))<0)
return;
- if ((rxfrm->wi_frame_ctl & htole16(WI_FCTL_STYPE)) ==
- htole16(WI_STYPE_MGMT_REASREQ)) {
- /* Reassociation Request-- * Current AP. (Ignore?) */
- if (len < 6)
- return;
- }
-
if (sc->arpcom.ac_if.if_flags & IFF_DEBUG)
printf("wihap_assoc_req: from station %6D\n",
rxfrm->wi_addr2, ":");
OpenPOWER on IntegriCloud