free(wd_new);
- if (blob_attr_equal(wdev->config, new_config) || wdev->disabled == disabled)
+ if (blob_attr_equal(wdev->config, new_config) && wdev->disabled == disabled)
return;
D(WIRELESS, "Update configuration of wireless device '%s'\n", wdev->name);
D(WIRELESS, "Add handler for script %s: %s\n", script, name);
}
-static void __init
-wireless_init_list(void)
+void wireless_init(void)
{
vlist_init(&wireless_devices, avl_strcmp, wdev_update);
wireless_devices.keep_old = true;
INIT_LIST_HEAD(&wdev->script_proc);
vlist_init(&wdev->interfaces, avl_strcmp, vif_update);
wdev->interfaces.keep_old = true;
- vlist_add(&wireless_devices, &wdev->node, wdev->name);
wdev->timeout.cb = wireless_device_setup_timeout;
wdev->script_task.cb = wireless_device_script_task_cb;
wdev->script_proc_fd.cb = wireless_proc_poll_fd;
wdev->script_check.cb = wireless_device_check_script_tasks;
+
+ vlist_add(&wireless_devices, &wdev->node, wdev->name);
}
void wireless_interface_create(struct wireless_device *wdev, struct blob_attr *data, const char *section)