X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fubus.git;a=blobdiff_plain;f=libubus.h;h=07239d6664d4ade26de378df46d4e44d9876b413;hp=5c5f8de3cf012b6879fcad37af63880ab1c25922;hb=5dfd3c16fa1cc9e288c41ef6e3e4c3bc63acf612;hpb=8309c75828acbcee73b11d9ce90d76b7ef14b891 diff --git a/libubus.h b/libubus.h index 5c5f8de..07239d6 100644 --- a/libubus.h +++ b/libubus.h @@ -158,6 +158,7 @@ struct ubus_context { int stack_depth; void (*connection_lost)(struct ubus_context *ctx); + void (*monitor_cb)(struct ubus_context *ctx, uint32_t seq, struct blob_attr *data); struct ubus_msghdr_buf msgbuf; uint32_t msgbuf_data_len; @@ -239,6 +240,12 @@ void ubus_free(struct ubus_context *ctx); /* call this only for struct ubus_context pointers initialised by ubus_connect_ctx() */ void ubus_shutdown(struct ubus_context *ctx); +static inline void ubus_auto_shutdown(struct ubus_auto_conn *conn) +{ + uloop_timeout_cancel(&conn->timer); + ubus_shutdown(&conn->ctx); +} + const char *ubus_strerror(int error); static inline void ubus_add_uloop(struct ubus_context *ctx) @@ -290,6 +297,18 @@ ubus_unregister_subscriber(struct ubus_context *ctx, struct ubus_subscriber *obj int ubus_subscribe(struct ubus_context *ctx, struct ubus_subscriber *obj, uint32_t id); int ubus_unsubscribe(struct ubus_context *ctx, struct ubus_subscriber *obj, uint32_t id); +int __ubus_monitor(struct ubus_context *ctx, const char *type); + +static inline int ubus_monitor_start(struct ubus_context *ctx) +{ + return __ubus_monitor(ctx, "add"); +} + +static inline int ubus_monitor_stop(struct ubus_context *ctx) +{ + return __ubus_monitor(ctx, "remove"); +} + /* ----------- acl ----------- */ @@ -325,6 +344,7 @@ static inline void ubus_defer_request(struct ubus_context *ctx, struct ubus_request_data *req, struct ubus_request_data *new_req) { + (void) ctx; memcpy(new_req, req, sizeof(*req)); req->deferred = true; } @@ -332,6 +352,7 @@ static inline void ubus_defer_request(struct ubus_context *ctx, static inline void ubus_request_set_fd(struct ubus_context *ctx, struct ubus_request_data *req, int fd) { + (void) ctx; req->fd = fd; }