]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P2: Enable pairing setup and caching based on driver capabilities
authorShivani Baranwal <shivani.baranwal@oss.qualcomm.com>
Wed, 28 May 2025 10:20:36 +0000 (15:50 +0530)
committerJouni Malinen <j@w1.fi>
Tue, 24 Jun 2025 08:22:55 +0000 (11:22 +0300)
Enable P2P pairing setup and caching based on the underlying driver
capabilities instead of wpa_supplicant configuration parameters.

Signed-off-by: Shivani Baranwal <shivani.baranwal@oss.qualcomm.com>
wpa_supplicant/p2p_supplicant.c
wpa_supplicant/wpa_supplicant.c
wpa_supplicant/wpa_supplicant_i.h

index b4e56f90aaaaab100e64238aacefbeb57d778e72..62567a0850e3941091111f84dbd83316dba1e760 100644 (file)
@@ -5967,12 +5967,9 @@ int wpas_p2p_init(struct wpa_global *global, struct wpa_supplicant *wpa_s)
                                   "P2P: Failed to update configuration");
        }
 
-       p2p.pairing_config.enable_pairing_setup =
-               wpa_s->conf->p2p_pairing_setup;
-       p2p.pairing_config.pairing_capable =
-               wpa_s->conf->p2p_pairing_setup;
-       p2p.pairing_config.enable_pairing_cache =
-               wpa_s->conf->p2p_pairing_cache;
+       p2p.pairing_config.enable_pairing_setup = wpa_s->p2p_pairing_setup;
+       p2p.pairing_config.pairing_capable = wpa_s->p2p_pairing_setup;
+       p2p.pairing_config.enable_pairing_cache = wpa_s->p2p_pairing_cache;
        p2p.pairing_config.bootstrap_methods =
                wpa_s->conf->p2p_bootstrap_methods;
        p2p.pairing_config.pasn_type = wpa_s->conf->p2p_pasn_type;
index dfbd631639ad65da870e9d4679fe5e0dcb743d6c..65e9e90bc0b6d77156fdf783961788a5550d28a0 100644 (file)
@@ -7910,6 +7910,14 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s,
                return -1;
        }
 
+#ifdef CONFIG_P2P
+       if (wpa_s->drv_flags2 & (WPA_DRIVER_FLAGS2_P2P_FEATURE_V2 |
+                                WPA_DRIVER_FLAGS2_P2P_FEATURE_PCC_MODE)) {
+               wpa_s->p2p_pairing_setup = true;
+               wpa_s->p2p_pairing_cache = true;
+       }
+#endif /* CONFIG_P2P */
+
        if ((!(wpa_s->drv_flags & WPA_DRIVER_FLAGS_DEDICATED_P2P_DEVICE) ||
             wpa_s->p2p_mgmt) &&
            wpas_p2p_init(wpa_s->global, wpa_s) < 0) {
index 3b2f344445132945eacc8ed89bcc97443b08832b..3f86182fa3697ae30bec5fe61779a78d507908d3 100644 (file)
@@ -1117,6 +1117,8 @@ struct wpa_supplicant {
        int p2p_in_invitation;
        int p2p_retry_limit;
        int p2p_invite_go_freq;
+       bool p2p_pairing_setup;
+       bool p2p_pairing_cache;
        int pending_invite_ssid_id;
        int show_group_started;
        u8 go_dev_addr[ETH_ALEN];