hostapd: restart wifi when the bssid of the first interface changes
authorFelix Fietkau <nbd@nbd.name>
Fri, 11 Aug 2023 21:08:56 +0000 (23:08 +0200)
committerFelix Fietkau <nbd@nbd.name>
Fri, 11 Aug 2023 21:29:22 +0000 (23:29 +0200)
Full restart is necessary, since the bss wdev is not re-created

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

index 401f7c92662d43bdfc8a43a75cea6fab574925b1..070d70a96420e176861ec5fa57e25dabc68acae7 100644 (file)
@@ -136,6 +136,9 @@ function iface_reload_config(phy, config, old_config)
                if (phy_is_fullmac(phy))
                        return false;
 
+               if (config.bss[0].bssid != old_config.bss[0].bssid)
+                       return false;
+
                hostapd.printf(`Reload config for bss '${config.bss[0].ifname}' on phy '${phy}'`);
                if (iface.bss[0].set_config(config_inline, 0) < 0) {
                        hostapd.printf(`Failed to set config`);
@@ -269,6 +272,9 @@ function iface_load_config(filename)
                if (!val[0])
                        continue;
 
+               if (val[0] == "bssid")
+                       bss.bssid = val[1];
+
                if (val[0] == "bss") {
                        bss = config_add_bss(config, val[1]);
                        continue;