98 amxc_htable_it_t* it = NULL;
100 amxc_string_t rel_path;
105 amxc_string_init(&rel_path, 64);
106 amxd_path_init(&path, NULL);
107 amxd_path_setf(&path,
true,
"%s",
object);
111 ret = ubus_lookup_id(amxb_ubus_ctx->
ubus_ctx, amxd_path_get(&path, 0), &
id);
112 when_true(ret != 0, exit);
114 it = amxc_htable_get(&amxb_ubus_ctx->
subscribers, amxd_path_get(&path, 0));
115 when_not_null(it, exit);
122 ret = ubus_register_subscriber(amxb_ubus_ctx->
ubus_ctx,
123 &amxb_ubus_sub->
sub);
124 when_true(ret != 0, exit);
127 ret = ubus_subscribe(amxb_ubus_ctx->
ubus_ctx, &amxb_ubus_sub->
sub,
id);
130 amxc_string_clean(&rel_path);
131 amxd_path_clean(&path);
int PRIVATE amxb_ubus_get_longest_path(amxb_ubus_t *amxb_ubus_ctx, amxd_path_t *path, amxc_string_t *rel_path)
static int amxb_ubus_receive_notification(struct ubus_context *ctx, AMXB_UNUSED struct ubus_object *obj, AMXB_UNUSED struct ubus_request_data *req, const char *method, struct blob_attr *msg)
struct ubus_subscriber sub
amxc_htable_t subscribers