obj->type = type;
INIT_LIST_HEAD(&obj->list);
+ INIT_LIST_HEAD(&obj->events);
if (type)
type->refcount++;
struct ubus_object_type *type = NULL;
if (attr[UBUS_ATTR_OBJTYPE])
- type = ubus_get_obj_type(blob_get_int32(attr[UBUS_ATTR_OBJTYPE]));
+ type = ubus_get_obj_type(blob_get_u32(attr[UBUS_ATTR_OBJTYPE]));
else if (attr[UBUS_ATTR_SIGNATURE])
type = ubus_create_obj_type(attr[UBUS_ATTR_SIGNATURE]);
obj->path.key = NULL;
goto free;
}
+ ubusd_send_obj_event(obj, true);
}
obj->client = cl;
list_add(&obj->list, &cl->objects);
- INIT_LIST_HEAD(&obj->events);
return obj;
{
ubusd_event_cleanup_object(obj);
if (obj->path.key) {
+ ubusd_send_obj_event(obj, false);
avl_delete(&path, &obj->path);
free(obj->path.key);
}