From 54e2961f80e283c7fc43b5f667ea6c948f334f0b Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Sat, 28 Mar 2020 20:39:19 +0200 Subject: [PATCH] Add a hostapd testing option for skipping association pruning The new skip_prune_assoc=1 parameter can be used to configure hostapd not to prune associations from other BSSs operated by the same process when a station associates with another BSS. This can be helpful in testing roaming cases where association and authorization state is maintained in an AP when the stations returns. Signed-off-by: Jouni Malinen --- hostapd/config_file.c | 2 ++ src/ap/ap_config.h | 1 + src/ap/utils.c | 4 ++++ 3 files changed, 7 insertions(+) diff --git a/hostapd/config_file.c b/hostapd/config_file.c index 7a184c440..425446c24 100644 --- a/hostapd/config_file.c +++ b/hostapd/config_file.c @@ -4206,6 +4206,8 @@ static int hostapd_config_fill(struct hostapd_config *conf, bss->igtk_rsc_override = wpabuf_parse_bin(pos); } else if (os_strcmp(buf, "no_beacon_rsnxe") == 0) { bss->no_beacon_rsnxe = atoi(pos); + } else if (os_strcmp(buf, "skip_prune_assoc") == 0) { + bss->skip_prune_assoc = atoi(pos); #endif /* CONFIG_TESTING_OPTIONS */ #ifdef CONFIG_SAE } else if (os_strcmp(buf, "sae_password") == 0) { diff --git a/src/ap/ap_config.h b/src/ap/ap_config.h index 7930fc374..2a0bf0763 100644 --- a/src/ap/ap_config.h +++ b/src/ap/ap_config.h @@ -685,6 +685,7 @@ struct hostapd_bss_config { struct wpabuf *gtk_rsc_override; struct wpabuf *igtk_rsc_override; int no_beacon_rsnxe; + int skip_prune_assoc; #endif /* CONFIG_TESTING_OPTIONS */ #define MESH_ENABLED BIT(0) diff --git a/src/ap/utils.c b/src/ap/utils.c index fcb371bec..bedad6eb0 100644 --- a/src/ap/utils.c +++ b/src/ap/utils.c @@ -56,6 +56,10 @@ static int prune_associations(struct hostapd_iface *iface, void *ctx) ohapd = iface->bss[j]; if (ohapd == data->hapd) continue; +#ifdef CONFIG_TESTING_OPTIONS + if (ohapd->conf->skip_prune_assoc) + continue; +#endif /* CONFIG_TESTING_OPTIONS */ #ifdef CONFIG_FST /* Don't prune STAs belong to same FST */ if (ohapd->iface->fst && -- 2.39.2