projects
/
project
/
ubus.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
libubus: add UBUS_METHOD_NOARG
[project/ubus.git]
/
libubus-obj.c
diff --git
a/libubus-obj.c
b/libubus-obj.c
index
c35e075
..
ed18ca9
100644
(file)
--- 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;
struct ubus_request_data req = {};
int method;
int ret;
+ bool no_reply = false;
if (!obj) {
ret = UBUS_STATUS_NOT_FOUND;
if (!obj) {
ret = UBUS_STATUS_NOT_FOUND;
@@
-59,6
+60,9
@@
ubus_process_invoke(struct ubus_context *ctx, struct ubus_msghdr *hdr,
goto send;
}
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;
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]);
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:
return;
send: