X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fnetifd.git;a=blobdiff_plain;f=wireless.c;h=387f4baf709b6242fe8f0100daf49e3c7c75b94f;hp=f5378482a5c3e24fdc990912ccdcbc2e37c9d468;hb=HEAD;hpb=2d01488e83f2488c6f1f56309e792d7bc495677f diff --git a/wireless.c b/wireless.c index f537848..387f4ba 100644 --- a/wireless.c +++ b/wireless.c @@ -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; @@ -761,6 +761,7 @@ wireless_device_status(struct wireless_device *wdev, struct blob_buf *b) 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");