aboutsummaryrefslogtreecommitdiffstats
path: root/wpa_supplicant
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2011-10-20 18:51:32 (GMT)
committerJouni Malinen <j@w1.fi>2011-10-20 18:51:32 (GMT)
commit9b90955ec706905d1c5b864885d252ebf7ddba4e (patch)
treee02d244c542d870b4c8d73569028d5d120845ed6 /wpa_supplicant
parent9236ba4cb547a9eb3394b78f03637db51dba7577 (diff)
downloadhostap-9b90955ec706905d1c5b864885d252ebf7ddba4e.zip
hostap-9b90955ec706905d1c5b864885d252ebf7ddba4e.tar.gz
hostap-9b90955ec706905d1c5b864885d252ebf7ddba4e.tar.bz2
AP: Pass only bssid/addr/wds to EVENT_RX_FROM_UNKNOWN
Diffstat (limited to 'wpa_supplicant')
-rw-r--r--wpa_supplicant/ap.c9
-rw-r--r--wpa_supplicant/ap.h2
-rw-r--r--wpa_supplicant/events.c4
3 files changed, 5 insertions, 10 deletions
diff --git a/wpa_supplicant/ap.c b/wpa_supplicant/ap.c
index 8f83a6b..c4959bf 100644
--- a/wpa_supplicant/ap.c
+++ b/wpa_supplicant/ap.c
@@ -576,16 +576,11 @@ void ap_client_poll_ok(void *ctx, const u8 *addr)
}
-void ap_rx_from_unknown_sta(void *ctx, const u8 *frame, size_t len)
+void ap_rx_from_unknown_sta(void *ctx, const u8 *addr, int wds)
{
#ifdef NEED_AP_MLME
struct wpa_supplicant *wpa_s = ctx;
- const struct ieee80211_hdr *hdr =
- (const struct ieee80211_hdr *) frame;
- u16 fc = le_to_host16(hdr->frame_control);
- ieee802_11_rx_from_unknown(wpa_s->ap_iface->bss[0], hdr->addr2,
- (fc & (WLAN_FC_TODS | WLAN_FC_FROMDS)) ==
- (WLAN_FC_TODS | WLAN_FC_FROMDS));
+ ieee802_11_rx_from_unknown(wpa_s->ap_iface->bss[0], addr, wds);
#endif /* NEED_AP_MLME */
}
diff --git a/wpa_supplicant/ap.h b/wpa_supplicant/ap.h
index b94ead7..567e784 100644
--- a/wpa_supplicant/ap.h
+++ b/wpa_supplicant/ap.h
@@ -42,7 +42,7 @@ int ap_ctrl_iface_wpa_get_status(struct wpa_supplicant *wpa_s, char *buf,
void ap_tx_status(void *ctx, const u8 *addr,
const u8 *buf, size_t len, int ack);
void ap_client_poll_ok(void *ctx, const u8 *addr);
-void ap_rx_from_unknown_sta(void *ctx, const u8 *frame, size_t len);
+void ap_rx_from_unknown_sta(void *ctx, const u8 *addr, int wds);
void ap_mgmt_rx(void *ctx, struct rx_mgmt *rx_mgmt);
void ap_mgmt_tx_cb(void *ctx, const u8 *buf, size_t len, u16 stype, int ok);
int wpa_supplicant_ap_update_beacon(struct wpa_supplicant *wpa_s);
diff --git a/wpa_supplicant/events.c b/wpa_supplicant/events.c
index 232a776..4ec935e 100644
--- a/wpa_supplicant/events.c
+++ b/wpa_supplicant/events.c
@@ -2033,8 +2033,8 @@ void wpa_supplicant_event(void *ctx, enum wpa_event_type event,
case EVENT_RX_FROM_UNKNOWN:
if (wpa_s->ap_iface == NULL)
break;
- ap_rx_from_unknown_sta(wpa_s, data->rx_from_unknown.frame,
- data->rx_from_unknown.len);
+ ap_rx_from_unknown_sta(wpa_s, data->rx_from_unknown.addr,
+ data->rx_from_unknown.wds);
break;
case EVENT_RX_MGMT:
if (wpa_s->ap_iface == NULL) {