From ee9e399096941e1c745f34f118a2cf8d1862243e Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 14 Dec 2012 20:05:34 +0100 Subject: [PATCH] libubus: do not send a status reply if UBUS_ATTR_NO_REPLY is set Signed-off-by: Felix Fietkau --- libubus-obj.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libubus-obj.c b/libubus-obj.c index c35e075..ed18ca9 100644 --- a/libubus-obj.c +++ b/libubus-obj.c @@ -48,6 +48,7 @@ ubus_process_invoke(struct ubus_context *ctx, struct ubus_msghdr *hdr, struct ubus_request_data req = {}; int method; int ret; + bool no_reply = false; if (!obj) { ret = UBUS_STATUS_NOT_FOUND; @@ -59,6 +60,9 @@ ubus_process_invoke(struct ubus_context *ctx, struct ubus_msghdr *hdr, goto send; } + if (attrbuf[UBUS_ATTR_NO_REPLY]) + no_reply = blob_get_int8(attrbuf[UBUS_ATTR_NO_REPLY]); + req.peer = hdr->peer; req.seq = hdr->seq; req.object = obj->id; @@ -77,7 +81,7 @@ found: ret = obj->methods[method].handler(ctx, obj, &req, blob_data(attrbuf[UBUS_ATTR_METHOD]), attrbuf[UBUS_ATTR_DATA]); - if (req.deferred) + if (req.deferred || no_reply) return; send: -- 2.11.0