summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau2024-09-21 18:13:51 +0000
committerFelix Fietkau2024-09-21 18:14:51 +0000
commitb4e7682c548e6d2f508f26a48c3e41fe34a4fc76 (patch)
tree93a6af6bf4d0c5c175e7af4597ed299138ea6711
parent1a288670d99012e2921c2a8906e7a61dc8e89e72 (diff)
downloadopenwrt-b4e7682c548e6d2f508f26a48c3e41fe34a4fc76.tar.gz
hostapd: fix num_global_macaddr and mbssid config handling
Store the config values in the correct field and apply them on restart too Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--package/network/services/hostapd/files/hostapd.uc20
1 files changed, 13 insertions, 7 deletions
diff --git a/package/network/services/hostapd/files/hostapd.uc b/package/network/services/hostapd/files/hostapd.uc
index e30e3e9b02..6774fbf3ba 100644
--- a/package/network/services/hostapd/files/hostapd.uc
+++ b/package/network/services/hostapd/files/hostapd.uc
@@ -229,6 +229,16 @@ function iface_pending_init(phydev, config)
pending.next();
}
+function iface_macaddr_init(phydev, config, macaddr_list)
+{
+ let macaddr_data = {
+ num_global: config.num_global_macaddr ?? 1,
+ mbssid: config.mbssid ?? 0,
+ };
+
+ return phydev.macaddr_init(macaddr_list, macaddr_data);
+}
+
function iface_restart(phydev, config, old_config)
{
let phy = phydev.name;
@@ -246,7 +256,7 @@ function iface_restart(phydev, config, old_config)
return;
}
- phydev.macaddr_init(iface_config_macaddr_list(config));
+ iface_macaddr_init(phydev, config, iface_config_macaddr_list(config));
for (let i = 0; i < length(config.bss); i++) {
let bss = config.bss[i];
if (bss.default_macaddr)
@@ -500,11 +510,7 @@ function iface_reload_config(phydev, config, old_config)
}
// Step 6: assign BSSID for newly created interfaces
- let macaddr_data = {
- num_global: config.num_global_macaddr ?? 1,
- mbssid: config.mbssid ?? 0,
- };
- macaddr_list = phydev.macaddr_init(macaddr_list, macaddr_data);
+ macaddr_list = iface_macaddr_init(phydev, config, macaddr_list);
for (let i = 0; i < length(config.bss); i++) {
if (bss_list[i])
continue;
@@ -675,7 +681,7 @@ function iface_load_config(filename)
if (val[0] == "#num_global_macaddr" ||
val[0] == "mbssid")
- config[val[0]] = int(val[1]);
+ config[substr(val[0], 1)] = int(val[1]);
push(config.radio.data, line);
}