if (req->complete_cb)
req->complete_cb(req, status);
- if (!registered)
+ if (!registered) {
uloop_fd_delete(&ctx->sock);
+ if (ctx->stack_depth)
+ ctx->pending_timer.cb(&ctx->pending_timer);
+ }
+
return status;
}
int timeout)
{
struct ubus_request req;
+ int rc;
+
+ rc = ubus_invoke_async(ctx, obj, method, msg, &req);
+ if (rc)
+ return rc;
- ubus_invoke_async(ctx, obj, method, msg, &req);
req.data_cb = cb;
req.priv = priv;
return ubus_complete_request(ctx, &req, timeout);