add notifications for registered/unregistered objects with path
[project/ubus.git] / ubusd_obj.c
index ffd5330..2d78796 100644 (file)
@@ -115,7 +115,7 @@ struct ubus_object *ubusd_create_object(struct ubus_client *cl, struct blob_attr
        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]);
 
@@ -139,6 +139,7 @@ struct ubus_object *ubusd_create_object(struct ubus_client *cl, struct blob_attr
                        obj->path.key = NULL;
                        goto free;
                }
+               ubusd_send_obj_event(obj, true);
        }
 
        obj->client = cl;
@@ -155,6 +156,7 @@ void ubusd_free_object(struct ubus_object *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);
        }