EAP105: Roaming failed, if MPSK (AAA server) is configured (#515)

* While Roaming the AP couldn't find the wildcard R0KH and R1KH ids,
which are required by Fast transistion.
* Issue caused by the placement of conf parser in the invalid location.

Fixes: WIFI-14544

Signed-off-by: Marek Kwaczynski <marek@shasta.cloud>
This commit is contained in:
Sundareswar
2025-05-19 15:41:43 +05:30
committed by John Crispin
parent 44bcc50815
commit 3caba52dba

View File

@@ -1,3 +1,4 @@
unchanged:
--- a/hostapd/config_file.c --- a/hostapd/config_file.c
+++ b/hostapd/config_file.c +++ b/hostapd/config_file.c
@@ -3003,6 +3003,8 @@ static int hostapd_config_fill(struct ho @@ -3003,6 +3003,8 @@ static int hostapd_config_fill(struct ho
@@ -9,12 +10,10 @@
#endif /* CONFIG_IEEE80211R_AP */ #endif /* CONFIG_IEEE80211R_AP */
#ifndef CONFIG_NO_CTRL_IFACE #ifndef CONFIG_NO_CTRL_IFACE
} else if (os_strcmp(buf, "ctrl_interface") == 0) { } else if (os_strcmp(buf, "ctrl_interface") == 0) {
@@ -4958,8 +4960,22 @@ int hostapd_set_iface(struct hostapd_con @@ -4982,6 +4982,19 @@ struct hostapd_config * hostapd_config_r
return -1; fclose(f);
}
- for (i = 0; i < conf->num_bss; i++) for (i = 0; i < conf->num_bss; i++) {
+ for (i = 0; i < conf->num_bss; i++) {
+ if (*conf->bss[i]->ft_key) { + if (*conf->bss[i]->ft_key) {
+ u8 buffer[128]; + u8 buffer[128];
+ sprintf(buffer, "%02X:%02X:%02X:%02X:%02X:%02X %02X%02X%02X%02X%02X%02X %s", MAC2STR(conf->bss[i]->bssid), MAC2STR(conf->bss[i]->bssid), conf->bss[i]->ft_key); + sprintf(buffer, "%02X:%02X:%02X:%02X:%02X:%02X %02X%02X%02X%02X%02X%02X %s", MAC2STR(conf->bss[i]->bssid), MAC2STR(conf->bss[i]->bssid), conf->bss[i]->ft_key);
@@ -28,11 +27,9 @@
+ hexstr2bin(conf->bss[i]->bssid, conf->bss[i]->r1_key_holder, FT_R1KH_ID_LEN); + hexstr2bin(conf->bss[i]->bssid, conf->bss[i]->r1_key_holder, FT_R1KH_ID_LEN);
+ conf->bss[i]->r0_key_holder_bssid = 1; + conf->bss[i]->r0_key_holder_bssid = 1;
+ } + }
hostapd_set_security_params(conf->bss[i], 0); hostapd_set_security_params(conf->bss[i], 1);
+ } #ifdef CONFIG_IEEE80211BE
if (conf->ieee80211be && conf->bss[i]->ieee80211w > 0
if (hostapd_config_check(conf, 0)) {
wpa_printf(MSG_ERROR, "Configuration check failed");
--- a/src/ap/ap_config.h --- a/src/ap/ap_config.h
+++ b/src/ap/ap_config.h +++ b/src/ap/ap_config.h
@@ -398,6 +398,7 @@ struct hostapd_bss_config { @@ -398,6 +398,7 @@ struct hostapd_bss_config {