summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelix Fietkau2025-09-25 10:07:48 +0000
committerFelix Fietkau2025-09-25 10:08:52 +0000
commitadb1ce158ac80b69f86b55a86d42b3b5ead7bc5d (patch)
tree83697b47bb3e94f5cd5a6498a0dfc119b08f0742
parent8c37f5f2f2c07ed02f39adc179c0e28afc23914e (diff)
downloadopenwrt-adb1ce158ac80b69f86b55a86d42b3b5ead7bc5d.tar.gz
hostapd: fix setting up MLD AP interfaces after config change
Removing the last remaining link from an MLD AP interface removes the interface as well. Re-create the interface if necessary on config changes. Signed-off-by: Felix Fietkau <nbd@nbd.name>
-rw-r--r--package/network/services/hostapd/files/hostapd.uc6
1 files changed, 5 insertions, 1 deletions
diff --git a/package/network/services/hostapd/files/hostapd.uc b/package/network/services/hostapd/files/hostapd.uc
index 671502720e..2679fb1ee1 100644
--- a/package/network/services/hostapd/files/hostapd.uc
+++ b/package/network/services/hostapd/files/hostapd.uc
@@ -1,5 +1,5 @@
let libubus = require("ubus");
-import { open, readfile } from "fs";
+import { open, readfile, access } from "fs";
import { wdev_remove, is_equal, vlist_new, phy_is_fullmac, phy_open, wdev_set_radio_mask, wdev_set_up } from "common";
let ubus = libubus.connect(null, 60);
@@ -777,6 +777,10 @@ function bss_check_mld(phydev, iface_name, bss)
bss.mld_bssid = mld_data.macaddr;
mld_data.iface[iface_name] = true;
+
+ if (!access('/sys/class/net/' + iface_name, 'x'))
+ mld_data.has_wdev = false;
+
if (mld_data.has_wdev)
return true;