]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
OWE: Skip beacon update of transition BSS if it is not yet enabled
authorHu Wang <huw@codeaurora.org>
Fri, 15 May 2020 06:20:32 +0000 (14:20 +0800)
committerJouni Malinen <j@w1.fi>
Tue, 26 May 2020 13:23:39 +0000 (16:23 +0300)
When a single hostapd process manages both the OWE and open BSS for
transition mode, owe_transition_ifname can be used to clone the
transition mode information (i.e., BSSID/SSID) automatically. When both
BSSs use ACS, the completion of ACS on the 1st BSS sets state to
HAPD_IFACE_ENABLED and the OWE transition mode information is updated
for all the other BSSs. However, the 2nd BSS is still in the ACS phase
and the beacon update messes up the state for AP startup and prevents
proper ACS competion.

If 2nd BSS is not yet enabled (e.g., in ACS), skip beacon update and
defer OWE transition information cloning until the BSS is enabled.

Signed-off-by: Jouni Malinen <jouni@codeaurora.org>
src/ap/hostapd.c

index f0af4b87c77d515c0fb95aafe44456f15ff1c937..b37f49f9a8ecac0cb0f2cda2d0fe46a8b1a116cd 100644 (file)
@@ -1915,6 +1915,13 @@ static int hostapd_owe_iface_iter2(struct hostapd_iface *iface, void *ctx)
 
                if (!bss->conf->owe_transition_ifname[0])
                        continue;
+               if (bss->iface->state != HAPD_IFACE_ENABLED) {
+                       wpa_printf(MSG_DEBUG,
+                                  "OWE: Interface %s state %s - defer beacon update",
+                                  bss->conf->iface,
+                                  hostapd_state_text(bss->iface->state));
+                       continue;
+               }
                res = hostapd_owe_trans_get_info(bss);
                if (res == 0)
                        continue;