projects
/
project
/
uhttpd.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3f17deb
)
ubus: pass json rpc arguments to called ubus functions
author
Jo-Philipp Wich
<jow@openwrt.org>
Fri, 25 Jan 2013 19:10:45 +0000
(20:10 +0100)
committer
Jo-Philipp Wich
<jow@openwrt.org>
Fri, 25 Jan 2013 20:12:06 +0000
(21:12 +0100)
ubus.c
patch
|
blob
|
history
diff --git
a/ubus.c
b/ubus.c
index
e128172
..
3a21fc7
100644
(file)
--- a/
ubus.c
+++ b/
ubus.c
@@
-233,15
+233,21
@@
static void uh_ubus_single_error(struct client *cl, enum rpc_error type)
ops->request_done(cl);
}
ops->request_done(cl);
}
-static void uh_ubus_send_request(struct client *cl, json_object *obj)
+static void uh_ubus_send_request(struct client *cl, json_object *obj
, struct blob_attr *args
)
{
struct dispatch *d = &cl->dispatch;
struct dispatch_ubus *du = &d->ubus;
{
struct dispatch *d = &cl->dispatch;
struct dispatch_ubus *du = &d->ubus;
- int ret;
+ struct blob_attr *cur;
+ static struct blob_buf req;
+ int ret, rem;
+
+ blob_buf_init(&req, 0);
+ blobmsg_for_each_attr(cur, args, rem)
+ blobmsg_add_blob(&req, cur);
blob_buf_init(&du->buf, 0);
memset(&du->req, 0, sizeof(du->req));
blob_buf_init(&du->buf, 0);
memset(&du->req, 0, sizeof(du->req));
- ret = ubus_invoke_async(ctx, du->obj, du->func,
buf
.head, &du->req);
+ ret = ubus_invoke_async(ctx, du->obj, du->func,
req
.head, &du->req);
if (ret)
return uh_ubus_json_error(cl, ERROR_INTERNAL);
if (ret)
return uh_ubus_json_error(cl, ERROR_INTERNAL);
@@
-376,7
+382,7
@@
static void uh_ubus_handle_request_object(struct client *cl, struct json_object
goto error;
}
goto error;
}
- uh_ubus_send_request(cl, obj);
+ uh_ubus_send_request(cl, obj
, data.data
);
return;
error:
return;
error: