ubus: add count test to validate large message sizes
[project/ubus.git] / libubus-req.c
index cdb8393..8475dc9 100644 (file)
@@ -171,11 +171,12 @@ int ubus_complete_request(struct ubus_context *ctx, struct ubus_request *req,
        if (req->complete_cb)
                req->complete_cb(req, status);
 
-       if (!registered)
+       if (!registered) {
                uloop_fd_delete(&ctx->sock);
 
-       if (!ctx->stack_depth)
-               ubus_process_pending_msg(ctx);
+               if (ctx->stack_depth)
+                       ctx->pending_timer.cb(&ctx->pending_timer);
+       }
 
        return status;
 }
@@ -223,8 +224,12 @@ int ubus_invoke(struct ubus_context *ctx, uint32_t obj, const char *method,
                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);