(data.type == "vif" && config.mode == "ap");
let dev_data = {
+ external: 2,
+ check_vlan: false,
isolate: !!config.bridge_isolate,
wireless: true,
wireless_ap: ap,
function start()
{
- if (this.delete || this.data.config.disabled)
+ if (this.delete)
return;
this.dbg("start, state=" + this.state);
this.autostart = true;
+ if (this.data.config.disabled)
+ return;
+
wdev_reset(this);
if (this.state != "down")
return;
wdev_config_init(this);
- this.setup();
+ if (this.data.config.disabled)
+ this.teardown();
+ else
+ this.setup();
}
function wdev_mark_up(wdev)
data.type != "vif" && data.type != "vlan")
continue;
- handle_link(dev, data, up);
+ handle_link(dev, data, add);
}
}
}
let udata = ubus.call({
+ object: "service",
+ method: "get_data",
+ data: {
+ type: "wifi-device"
+ },
+ });
+ for (let svcname, svc in udata) {
+ for (let typename, data in svc) {
+ for (let radio, config in data) {
+ if (type(config) != "object")
+ continue;
+
+ let dev = devices[radio];
+ if (dev) {
+ dev.config = { ...dev.config, ...config };
+ continue;
+ }
+
+ let handler = wireless.handlers[config.type];
+ if (!handler)
+ continue;
+
+ dev = devices[radio] = {
+ name,
+ config,
+
+ vif: [],
+ };
+ handlers[radio] = handler;
+ }
+ }
+ }
+
+
+ udata = ubus.call({
object: "service",
method: "get_data",
data: {
for (let svcname, svc in udata) {
for (let typename, data in svc) {
for (let radio, vifs in data) {
+ if (type(vifs) != "object")
+ continue;
+
for (let name, vif in vifs) {
let devs = vif.device;
if (type(devs) != "array")
dev.check();
}
-function hotplug(name, add)
+function hotplug(ifname, add)
{
for (let name, dev in wireless.devices)
if (dev.autostart)
- dev.hotplug(name, add);
+ dev.hotplug(ifname, add);
}
const network_config_attr = {