CMakeLists.txt: bump minimum cmake version
[project/ubus.git] / libubus-sub.c
index e395905f547662a5dc433830e508e78a66b8caf2..80d1f1ac542469aa782d35f690c5b5d68b3d10e0 100644 (file)
@@ -77,11 +77,16 @@ ubus_auto_sub_lookup(struct ubus_context *ctx, struct ubus_object_data *obj,
 int ubus_register_subscriber(struct ubus_context *ctx, struct ubus_subscriber *s)
 {
        struct ubus_object *obj = &s->obj;
+       int ret;
 
        INIT_LIST_HEAD(&s->list);
        obj->methods = &watch_method;
        obj->n_methods = 1;
 
+       ret = ubus_add_object(ctx, obj);
+       if (ret)
+               return ret;
+
        if (s->new_obj_cb) {
                struct ubus_event_handler *ev = &ctx->auto_subscribe_event_handler;
                list_add(&s->list, &ctx->auto_subscribers);
@@ -91,7 +96,7 @@ int ubus_register_subscriber(struct ubus_context *ctx, struct ubus_subscriber *s
                ubus_lookup(ctx, NULL, ubus_auto_sub_lookup, s);
        }
 
-       return ubus_add_object(ctx, obj);
+       return 0;
 }
 
 static int