Make dynamic interfaces always autostart
[project/netifd.git] / interface.c
index b0fe9de..4c92f10 100644 (file)
@@ -329,7 +329,7 @@ interface_cb(struct device_user *dep, enum device_event ev)
                break;
        case DEV_EVENT_LINK_UP:
                new_state = true;
-        case DEV_EVENT_LINK_DOWN:
+       case DEV_EVENT_LINK_DOWN:
                interface_set_link_state(iface, new_state);
                break;
        case DEV_EVENT_TOPO_CHANGE:
@@ -509,8 +509,8 @@ interface_cleanup_state(struct interface *iface)
        interface_clear_errors(iface);
        interface_set_proto_state(iface, NULL);
 
-       if (iface->main_dev.dev)
-               interface_set_main_dev(iface, NULL);
+       interface_set_main_dev(iface, NULL);
+       interface_set_l3_dev(iface, NULL);
 }
 
 static void
@@ -709,6 +709,7 @@ interface_alloc(const char *name, struct blob_attr *config)
 void interface_set_dynamic(struct interface *iface)
 {
        iface->dynamic = true;
+       iface->autostart = true;
        iface->node.version = -1; // Don't delete on reload
 }