if (len < IEEE80211_HDRLEN)
return;
-@@ -996,6 +1002,12 @@ void handle_probe_req(struct hostapd_dat
+@@ -840,6 +846,9 @@ void handle_probe_req(struct hostapd_dat
+ if (!hapd->conf->send_probe_response)
+ return;
+
++ req.raw_elems = ie;
++ req.raw_elems_len = ie_len;
++
+ if (ieee802_11_parse_elems(ie, ie_len, &elems, 0) == ParseFailed) {
+ wpa_printf(MSG_DEBUG, "Could not parse ProbeReq from " MACSTR,
+ MAC2STR(mgmt->sa));
+@@ -996,6 +1005,12 @@ void handle_probe_req(struct hostapd_dat
}
#endif /* CONFIG_P2P */
const char *type = "mgmt";
struct ubus_event_req ureq = {};
const u8 *addr;
+ char *ie_str;
+ int i;
if (req->mgmt_frame)
addr = req->mgmt_frame->sa;
if (req->ssi_signal)
blobmsg_add_u32(&b, "signal", req->ssi_signal);
blobmsg_add_u32(&b, "freq", hapd->iface->freq);
+
+ /* Add raw IEs */
+ if (req->raw_elems_len > 0) {
+ ie_str = blobmsg_alloc_string_buffer(&b, "raw_elements", req->raw_elems_len * 2 + 1);
+ for (i = 0; i < req->raw_elems_len; i++)
+ snprintf(&ie_str[i*2], 3, "%02X", req->raw_elems[i]);
+ blobmsg_add_string_buffer(&b);
+ }
if (req->elems) {
if(req->elems->ht_capabilities)