static void ubus_disconnect_cb(struct ubus_context *ubus) { int ret; ret = ubus_reconnect(ubus, NULL); if (ret) { my_syslog(LOG_ERR, _("Cannot reconnect to UBus: %s"), ubus_strerror(ret)); ubus_destroy(ubus); } }
static void loop_detect_ubus_reconnect_timer(struct uloop_timeout *timeout) { static struct uloop_timeout retry = { .cb = loop_detect_ubus_reconnect_timer, }; int t = 2; if (ubus_reconnect(ctx, ubus_path) != 0) { WARNING(LR_OUT_GROUP1,"failed to reconnect, trying again in %d seconds\n", t); uloop_timeout_set(&retry, t * 1000); return; } INFO(LR_OUT_GROUP1,"reconnected to ubus, new id: %08x\n", ctx->local_id); loop_detect_ubus_add_fd(); }