libubus.h: add ubus_auto_shutdown()

Add ubus_auto_shutdown function, which ensures any pending uloop_timer is cancelled before calling ubus_shutdown on the context.

This avoids a condition where ubus_shutdown() is called during ubus_auto_connect attempting a reconnection.

Signed-off-by: Ben Kelly <ben@benjii.net>
This commit is contained in:
Ben Kelly 2016-02-02 15:02:59 +02:00 committed by Felix Fietkau
parent 619f3a160d
commit 6a86e65f7d

View file

@ -240,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)