|
|
|
@ -321,6 +321,23 @@ static void hostapd_mgmt_tx_cb(struct hostapd_data *hapd, const u8 *buf,
|
|
|
|
|
#endif /* NEED_AP_MLME */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static int hostapd_probe_req_rx(struct hostapd_data *hapd, const u8 *sa,
|
|
|
|
|
const u8 *ie, size_t ie_len)
|
|
|
|
|
{
|
|
|
|
|
size_t i;
|
|
|
|
|
int ret = 0;
|
|
|
|
|
|
|
|
|
|
for (i = 0; hapd->probereq_cb && i < hapd->num_probereq_cb; i++) {
|
|
|
|
|
if (hapd->probereq_cb[i].cb(hapd->probereq_cb[i].ctx,
|
|
|
|
|
sa, ie, ie_len) > 0) {
|
|
|
|
|
ret = 1;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void wpa_supplicant_event(void *ctx, wpa_event_type event,
|
|
|
|
|
union wpa_event_data *data)
|
|
|
|
|
{
|
|
|
|
@ -369,6 +386,11 @@ void wpa_supplicant_event(void *ctx, wpa_event_type event,
|
|
|
|
|
data->rx_mgmt.frame_len, data->rx_mgmt.fi);
|
|
|
|
|
break;
|
|
|
|
|
#endif /* NEED_AP_MLME */
|
|
|
|
|
case EVENT_RX_PROBE_REQ:
|
|
|
|
|
hostapd_probe_req_rx(hapd, data->rx_probe_req.sa,
|
|
|
|
|
data->rx_probe_req.ie,
|
|
|
|
|
data->rx_probe_req.ie_len);
|
|
|
|
|
break;
|
|
|
|
|
default:
|
|
|
|
|
wpa_printf(MSG_DEBUG, "Unknown event %d", event);
|
|
|
|
|
break;
|
|
|
|
@ -376,20 +398,3 @@ void wpa_supplicant_event(void *ctx, wpa_event_type event,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endif /* HOSTAPD */
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int hostapd_probe_req_rx(struct hostapd_data *hapd, const u8 *sa,
|
|
|
|
|
const u8 *ie, size_t ie_len)
|
|
|
|
|
{
|
|
|
|
|
size_t i;
|
|
|
|
|
int ret = 0;
|
|
|
|
|
|
|
|
|
|
for (i = 0; hapd->probereq_cb && i < hapd->num_probereq_cb; i++) {
|
|
|
|
|
if (hapd->probereq_cb[i].cb(hapd->probereq_cb[i].ctx,
|
|
|
|
|
sa, ie, ie_len) > 0) {
|
|
|
|
|
ret = 1;
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|