mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-28 18:28:23 -05:00
wpa_supplicant: Add NEIGHBOR_REP_REQUEST command to the control interface
Add NEIGHBOR_REP_REQUEST command to the wpa_supplicant ctrl_iface. This command triggers the sending of a Neighbor Report Request to the associated AP. Signed-off-by: Assaf Krauss <assaf.krauss@intel.com>
This commit is contained in:
parent
d89c0701db
commit
f4b8bfae15
@ -200,6 +200,9 @@ extern "C" {
|
|||||||
#define EXT_RADIO_WORK_START "EXT-RADIO-WORK-START "
|
#define EXT_RADIO_WORK_START "EXT-RADIO-WORK-START "
|
||||||
#define EXT_RADIO_WORK_TIMEOUT "EXT-RADIO-WORK-TIMEOUT "
|
#define EXT_RADIO_WORK_TIMEOUT "EXT-RADIO-WORK-TIMEOUT "
|
||||||
|
|
||||||
|
#define RRM_EVENT_NEIGHBOR_REP_RXED "RRM-NEIGHBOR-REP-RECEIVED "
|
||||||
|
#define RRM_EVENT_NEIGHBOR_REP_FAILED "RRM-NEIGHBOR-REP-REQUEST-FAILED "
|
||||||
|
|
||||||
/* hostapd control interface - fixed message prefixes */
|
/* hostapd control interface - fixed message prefixes */
|
||||||
#define WPS_EVENT_PIN_NEEDED "WPS-PIN-NEEDED "
|
#define WPS_EVENT_PIN_NEEDED "WPS-PIN-NEEDED "
|
||||||
#define WPS_EVENT_NEW_AP_SETTINGS "WPS-NEW-AP-SETTINGS "
|
#define WPS_EVENT_NEW_AP_SETTINGS "WPS-NEW-AP-SETTINGS "
|
||||||
|
@ -6823,6 +6823,29 @@ static int wpas_ctrl_vendor_elem_remove(struct wpa_supplicant *wpa_s, char *cmd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void wpas_ctrl_neighbor_rep_cb(void *ctx, struct wpabuf *neighbor_rep)
|
||||||
|
{
|
||||||
|
struct wpa_supplicant *wpa_s = ctx;
|
||||||
|
|
||||||
|
if (neighbor_rep) {
|
||||||
|
wpa_msg_ctrl(wpa_s, MSG_INFO, RRM_EVENT_NEIGHBOR_REP_RXED
|
||||||
|
"length=%u",
|
||||||
|
(unsigned int) wpabuf_len(neighbor_rep));
|
||||||
|
wpabuf_free(neighbor_rep);
|
||||||
|
} else {
|
||||||
|
wpa_msg_ctrl(wpa_s, MSG_INFO, RRM_EVENT_NEIGHBOR_REP_FAILED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int wpas_ctrl_iface_send_neigbor_rep(struct wpa_supplicant *wpa_s)
|
||||||
|
{
|
||||||
|
return wpas_rrm_send_neighbor_rep_request(wpa_s,
|
||||||
|
wpas_ctrl_neighbor_rep_cb,
|
||||||
|
wpa_s);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
|
char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
|
||||||
char *buf, size_t *resp_len)
|
char *buf, size_t *resp_len)
|
||||||
{
|
{
|
||||||
@ -7425,6 +7448,9 @@ char * wpa_supplicant_ctrl_iface_process(struct wpa_supplicant *wpa_s,
|
|||||||
} else if (os_strncmp(buf, "VENDOR_ELEM_REMOVE ", 19) == 0) {
|
} else if (os_strncmp(buf, "VENDOR_ELEM_REMOVE ", 19) == 0) {
|
||||||
if (wpas_ctrl_vendor_elem_remove(wpa_s, buf + 19) < 0)
|
if (wpas_ctrl_vendor_elem_remove(wpa_s, buf + 19) < 0)
|
||||||
reply_len = -1;
|
reply_len = -1;
|
||||||
|
} else if (os_strncmp(buf, "NEIGHBOR_REP_REQUEST", 20) == 0) {
|
||||||
|
if (wpas_ctrl_iface_send_neigbor_rep(wpa_s))
|
||||||
|
reply_len = -1;
|
||||||
} else {
|
} else {
|
||||||
os_memcpy(reply, "UNKNOWN COMMAND\n", 16);
|
os_memcpy(reply, "UNKNOWN COMMAND\n", 16);
|
||||||
reply_len = 16;
|
reply_len = 16;
|
||||||
|
Loading…
Reference in New Issue
Block a user