if (!dev)
return;
- if (dev->type != &bridge_device_type)
+ if (!dev->type->bridge_capability)
return;
}
wireless_interface_init_config(vif_new);
} else if (vif_old) {
D(WIRELESS, "Delete wireless interface %s on device %s\n", vif_old->name, wdev->name);
+ wireless_interface_handle_link(vif_old, false);
free((void *) vif_old->section);
free(vif_old->config);
free(vif_old);
wdev->name = strcpy(name_buf, name);
wdev->config = data;
wdev->retry_setup_failed = false;
- wdev->config_autostart = true;
- wdev->autostart = wdev->config_autostart;
+ wdev->autostart = true;
INIT_LIST_HEAD(&wdev->script_proc);
vlist_init(&wdev->interfaces, avl_strcmp, vif_update);
wdev->interfaces.keep_old = true;
blobmsg_add_u8(b, "pending", wdev->state == IFS_SETUP || wdev->state == IFS_TEARDOWN);
blobmsg_add_u8(b, "autostart", wdev->autostart);
blobmsg_add_u8(b, "disabled", wdev->disabled);
+ blobmsg_add_u8(b, "retry_setup_failed", wdev->retry_setup_failed);
put_container(b, wdev->config, "config");
i = blobmsg_open_array(b, "interfaces");