]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
bgscan: Add OWE transition mode SSID to network scan
authorDavid Bauer <mail@david-bauer.net>
Sun, 28 Apr 2024 13:13:43 +0000 (15:13 +0200)
committerJouni Malinen <j@w1.fi>
Thu, 1 Aug 2024 15:16:34 +0000 (18:16 +0300)
Add transition mode SSIDs to the SSID scan-list for bgscan. This is
currently missing and bgscan fails to scan for SSIDs on the OWE
transition network if one is currently used.

Signed-off-by: David Bauer <mail@david-bauer.net>
wpa_supplicant/bgscan_learn.c
wpa_supplicant/bgscan_simple.c
wpa_supplicant/scan.c
wpa_supplicant/scan.h

index cab4ae2ac77ced2e065d4cab3146d9715d634f27..bc9f324054ab9ade36f3e2d783b20c3296ee5524 100644 (file)
@@ -280,6 +280,11 @@ static void bgscan_learn_timeout(void *eloop_ctx, void *timeout_ctx)
        params.num_ssids = 1;
        params.ssids[0].ssid = data->ssid->ssid;
        params.ssids[0].ssid_len = data->ssid->ssid_len;
+
+       /* Add OWE transition mode SSID of the current network */
+       wpa_add_owe_scan_ssid(wpa_s, &params, data->ssid,
+                             wpa_s->max_scan_ssids - params.num_ssids);
+
        if (data->ssid->scan_freq)
                params.freqs = data->ssid->scan_freq;
        else {
index a90cf86e5eaca4f40c0c569941b69ed9fb95c256..d9aaa634f018695ce9c57d82f95b57d56690616c 100644 (file)
@@ -89,6 +89,10 @@ static void bgscan_simple_timeout(void *eloop_ctx, void *timeout_ctx)
        params.ssids[0].ssid_len = data->ssid->ssid_len;
        params.freqs = data->ssid->scan_freq;
 
+       /* Add OWE transition mode SSID of the current network */
+       wpa_add_owe_scan_ssid(wpa_s, &params, data->ssid,
+                             wpa_s->max_scan_ssids - params.num_ssids);
+
        /*
         * A more advanced bgscan module would learn about most like channels
         * over time and request scans only for some channels (probing others
index ba7c15b1a8c9a2190c51a861cf350da2e8de805b..f0ab122f59a403cbb59055e8a25c686445033d19 100644 (file)
@@ -940,9 +940,9 @@ static void wpa_add_scan_ssid(struct wpa_supplicant *wpa_s,
 }
 
 
-static void wpa_add_owe_scan_ssid(struct wpa_supplicant *wpa_s,
-                                 struct wpa_driver_scan_params *params,
-                                 struct wpa_ssid *ssid, size_t max_ssids)
+void wpa_add_owe_scan_ssid(struct wpa_supplicant *wpa_s,
+                          struct wpa_driver_scan_params *params,
+                          const struct wpa_ssid *ssid, size_t max_ssids)
 {
 #ifdef CONFIG_OWE
        struct wpa_bss *bss;
index d4c06c1aed4034b0e746c01d6aec5b2fed4df347..7ea99928ca27176b66fb7913ab12541b1f6ac37e 100644 (file)
@@ -104,5 +104,8 @@ int wpas_channel_width_rssi_bump(const u8 *ies, size_t ies_len,
                                 enum chan_width cw);
 int wpas_adjust_snr_by_chanwidth(const u8 *ies, size_t ies_len,
                                 enum chan_width max_cw, int snr);
+void wpa_add_owe_scan_ssid(struct wpa_supplicant *wpa_s,
+                          struct wpa_driver_scan_params *params,
+                          const struct wpa_ssid *ssid, size_t max_ssids);
 
 #endif /* SCAN_H */