nterface-ip: remove superfluous iface check in interface_ip_set_enabled()
[project/netifd.git] / wireless.c
index 2ce5774..387f4ba 100644 (file)
@@ -83,7 +83,7 @@ vif_config_add_bridge(struct blob_buf *buf, struct blob_attr *networks, bool pre
                if (!dev)
                        return;
 
-               if (dev->type != &bridge_device_type)
+               if (!dev->type->bridge_capability)
                        return;
        }
 
@@ -613,6 +613,7 @@ vif_update(struct vlist_tree *tree, struct vlist_node *node_new,
                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);
@@ -690,8 +691,7 @@ wireless_device_create(struct wireless_driver *drv, const char *name, struct blo
        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;