{
struct wireless_interface *vif;
+ uloop_timeout_cancel(&wdev->script_check);
uloop_timeout_cancel(&wdev->timeout);
wireless_complete_kill_request(wdev);
free(wdev->data);
{
enum interface_config_state state = wdev->config_state;
- wdev->config_state = IFC_NORMAL;
switch(state) {
case IFC_NORMAL:
case IFC_RELOAD:
+ wdev->config_state = IFC_NORMAL;
if (wdev->autostart)
__wireless_device_set_up(wdev);
break;
static void
wdev_set_config_state(struct wireless_device *wdev, enum interface_config_state s)
{
- enum interface_config_state old_state = wdev->config_state;
-
- wdev->config_state = s;
- if (old_state != IFC_NORMAL)
+ if (wdev->config_state != IFC_NORMAL)
return;
+ wdev->config_state = s;
if (wdev->state == IFS_DOWN)
wdev_handle_config_change(wdev);
else
return;
drv = calloc_a(sizeof(*drv),
- &name_str, strlen(name) + 1,
- &script_str, strlen(script) + 1,
&dev_config, sizeof(*dev_config) + sizeof(void *),
- &iface_config, sizeof(*iface_config) + sizeof(void *));
+ &iface_config, sizeof(*iface_config) + sizeof(void *),
+ &name_str, strlen(name) + 1,
+ &script_str, strlen(script) + 1);
drv->name = strcpy(name_str, name);
drv->script = strcpy(script_str, script);
INIT_LIST_HEAD(&wdev->script_proc);
vlist_init(&wdev->interfaces, avl_strcmp, vif_update);
wdev->interfaces.keep_old = true;
- wdev->interfaces.no_delete = true;
vlist_add(&wireless_devices, &wdev->node, wdev->name);
wdev->timeout.cb = wireless_device_setup_timeout;