]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P2: Stop invitation process before sending out Invitation Request
authorShivani Baranwal <quic_shivbara@quicinc.com>
Mon, 1 Jul 2024 19:11:48 +0000 (00:41 +0530)
committerJouni Malinen <j@w1.fi>
Sun, 13 Oct 2024 18:41:53 +0000 (21:41 +0300)
This is needed for the P2P2 case of invitation using pairing validation.

Signed-off-by: Shivani Baranwal <quic_shivbara@quicinc.com>
src/p2p/p2p.h
src/p2p/p2p_invitation.c
wpa_supplicant/p2p_supplicant.c

index 0254980c4a277bb828428c1025f09a986567ab20..18bcca0d260e329b2524f5f93c285fbd299a9199 100644 (file)
@@ -1671,12 +1671,14 @@ enum p2p_invite_role {
  *     force_freq == 0)
  * @dev_pw_id: Device Password ID from OOB Device Password (NFC) static handover
  *     case or -1 if not used
+ * @p2p2: Operating in P2P2 mode
  * Returns: 0 on success, -1 on failure
  */
 int p2p_invite(struct p2p_data *p2p, const u8 *peer, enum p2p_invite_role role,
               const u8 *bssid, const u8 *ssid, size_t ssid_len,
               unsigned int force_freq, const u8 *go_dev_addr,
-              int persistent_group, unsigned int pref_freq, int dev_pw_id);
+              int persistent_group, unsigned int pref_freq, int dev_pw_id,
+              bool p2p2);
 
 /**
  * p2p_presence_req - Request GO presence
index 3fd66c230874640b4dbdc488a9a2dc6105a4bac4..35a43f4f825c6bf3c4112b4c23ade38e204a47ed 100644 (file)
@@ -670,7 +670,8 @@ void p2p_invitation_resp_cb(struct p2p_data *p2p, int success)
 int p2p_invite(struct p2p_data *p2p, const u8 *peer, enum p2p_invite_role role,
               const u8 *bssid, const u8 *ssid, size_t ssid_len,
               unsigned int force_freq, const u8 *go_dev_addr,
-              int persistent_group, unsigned int pref_freq, int dev_pw_id)
+              int persistent_group, unsigned int pref_freq, int dev_pw_id,
+              bool p2p2)
 {
        struct p2p_device *dev;
 
@@ -738,5 +739,8 @@ int p2p_invite(struct p2p_data *p2p, const u8 *peer, enum p2p_invite_role role,
        os_memcpy(p2p->inv_ssid, ssid, ssid_len);
        p2p->inv_ssid_len = ssid_len;
        p2p->inv_persistent = persistent_group;
+       if (p2p2)
+               return 0;
+
        return p2p_invite_send(p2p, dev, go_dev_addr, dev_pw_id);
 }
index faee2f0a9a6f79d431bc58c3209c07d581b61c89..f524fa0256ce302de140d013ba6df48d42d7b193 100644 (file)
@@ -8142,7 +8142,7 @@ int wpas_p2p_invite(struct wpa_supplicant *wpa_s, const u8 *peer_addr,
 
        return p2p_invite(wpa_s->global->p2p, peer_addr, role, bssid,
                          ssid->ssid, ssid->ssid_len, force_freq, go_dev_addr,
-                         1, pref_freq, -1);
+                         1, pref_freq, -1, false);
 }
 
 
@@ -8226,7 +8226,7 @@ int wpas_p2p_invite_group(struct wpa_supplicant *wpa_s, const char *ifname,
 
        return p2p_invite(wpa_s->global->p2p, peer_addr, role, bssid,
                          ssid->ssid, ssid->ssid_len, force_freq,
-                         go_dev_addr, persistent, pref_freq, -1);
+                         go_dev_addr, persistent, pref_freq, -1, false);
 }
 
 
@@ -9727,7 +9727,7 @@ static int wpas_p2p_nfc_auth_join(struct wpa_supplicant *wpa_s,
                          P2P_INVITE_ROLE_ACTIVE_GO, wpa_s->own_addr,
                          ssid->ssid, ssid->ssid_len, ssid->frequency,
                          wpa_s->global->p2p_dev_addr, persistent, 0,
-                         wpa_s->p2pdev->p2p_oob_dev_pw_id);
+                         wpa_s->p2pdev->p2p_oob_dev_pw_id, false);
 }