hostapd: fix num_global_macaddr and mbssid config handling
authorFelix Fietkau <nbd@nbd.name>
Sat, 21 Sep 2024 18:13:51 +0000 (20:13 +0200)
committerFelix Fietkau <nbd@nbd.name>
Sat, 21 Sep 2024 18:14:51 +0000 (20:14 +0200)
Store the config values in the correct field and apply them on restart too

Signed-off-by: Felix Fietkau <nbd@nbd.name>
package/network/services/hostapd/files/hostapd.uc

index e30e3e9b02fae4a711d6bd4e64dad8b0fa0bbc90..6774fbf3ba8ecf72b23a6411e821ea2b17f28871 100644 (file)
@@ -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);
        }