Skip to content
Snippets Groups Projects
Commit a7aa17ff authored by Jakob Olsson's avatar Jakob Olsson
Browse files

update add_device and related functionality by feedback

parent 5754a77e
No related branches found
No related tags found
No related merge requests found
......@@ -138,7 +138,6 @@ int update_device(struct device *dev)
}
prev_dev->present = true;
delete_device(dev);
return 0;
not_present:
return -1;
......@@ -155,10 +154,11 @@ int add_device(struct device *dev)
goto already_present;
dev->present = true;
if (list_empty(&devices))
INIT_LIST_HEAD(&devices);
list_add_tail(&dev->list, &devices);
if (dev->ip) {
dev->ubus_obj = dongle_create_dynamic_object(dev);
if (!dev->ubus_obj)
......@@ -166,7 +166,7 @@ int add_device(struct device *dev)
rv = publish_ubus_object(global_ctx, dev->ubus_obj);
if (rv)
goto fail;
goto fail_publish;
global_dev = dev;
}
......@@ -174,6 +174,8 @@ int add_device(struct device *dev)
return 0;
already_present:
return -1;
fail_publish:
dongle_destroy_dynamic_object(dev->ubus_obj);
fail:
return -2;
}
......@@ -453,7 +455,10 @@ int get_devices_from_path(char *input_path)
dev->usb.if_name = name;
dev->ip = get_device_ip(dev->usb.if_name);
add_device(dev);
rv = add_device(dev);
if (rv < 0)
delete_device(dev);
break;
}
closedir(dir);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment