From: Ben Kelly Date: Tue, 2 Feb 2016 13:02:59 +0000 (+0200) Subject: libubus.h: add ubus_auto_shutdown() X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=6a86e65f7d4836bfe387d213a6dfaea1d5d162dd;p=oweals%2Fubus.git 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 --- diff --git a/libubus.h b/libubus.h index 54e7d48..1b219b7 100644 --- a/libubus.h +++ b/libubus.h @@ -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)