]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P2: Parse new attributes
authorShivani Baranwal <quic_shivbara@quicinc.com>
Sun, 4 Aug 2024 21:13:59 +0000 (02:43 +0530)
committerJouni Malinen <j@w1.fi>
Thu, 5 Sep 2024 22:06:32 +0000 (01:06 +0300)
Recognize new attributes when parsing P2P2 IE.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
src/p2p/p2p_i.h
src/p2p/p2p_parse.c

index 2185f9b3e7109d3f9d3df18163fd732a66071b96..8e257f9e1e6fc36343e05c99b6a1a6401886839d 100644 (file)
@@ -738,6 +738,15 @@ struct p2p_message {
 
        const u8 *pbma_info;
        size_t pbma_info_len;
+
+       const u8 *action_frame_wrapper;
+       size_t action_frame_wrapper_len;
+
+       const u8 *dira;
+       size_t dira_len;
+
+       const u8 *wlan_ap_info;
+       size_t wlan_ap_info_len;
 };
 
 
index a70e1807924d4890b40834c3346a18e1d5f2b6db..cd3332d6ba42233e979cc0cf8e70f81baaf36cd4 100644 (file)
@@ -437,6 +437,40 @@ static int p2p_parse_attribute(u8 id, const u8 *data, u16 len,
                msg->pbma_info_len = len;
                wpa_printf(MSG_DEBUG, "P2P: * PBMA (length=%u)", len);
                break;
+       case P2P_ATTR_ACTION_FRAME_WRAPPER:
+               if (len < 2) {
+                       wpa_printf(MSG_DEBUG,
+                                  "P2P: Too short Action Frame Wrapper attribute (length %d)",
+                                  len);
+                       return -1;
+               }
+               msg->action_frame_wrapper = data;
+               msg->action_frame_wrapper_len = len;
+               wpa_printf(MSG_DEBUG, "P2P: * Action frame wrapper (length=%u)",
+                          len);
+               break;
+       case P2P_ATTR_DEVICE_IDENTITY_RESOLUTION:
+               if (len < 1) {
+                       wpa_printf(MSG_DEBUG, "P2P: Too short DIRA (length %d)",
+                                  len);
+                       return -1;
+               }
+               msg->dira = data;
+               msg->dira_len = len;
+               wpa_printf(MSG_DEBUG, "P2P: * DIRA (length=%u)", len);
+               break;
+       case P2P_ATTR_WLAN_AP_INFORMATION:
+               /* One or more AP Info fields (each being 12 octets) is required
+                * to be included. */
+               if (len < 12) {
+                       wpa_printf(MSG_DEBUG,
+                                  "P2P: Too short WLAN AP info (length %d)",
+                                  len);
+                       return -1;
+               }
+               msg->wlan_ap_info = data;
+               msg->wlan_ap_info_len = len;
+               break;
        default:
                wpa_printf(MSG_DEBUG, "P2P: Skipped unknown attribute %d "
                           "(length %d)", id, len);