diff mbox series

[uhttpd] ubus: use local "blob_buf" in uh_ubus_handle_request_object()

Message ID 20200727050734.5348-1-zajec5@gmail.com
State Accepted
Headers show
Series [uhttpd] ubus: use local "blob_buf" in uh_ubus_handle_request_object() | expand

Commit Message

Rafał Miłecki July 27, 2020, 5:07 a.m. UTC
From: Rafał Miłecki <rafal@milecki.pl>

This follows two other functions logic: uh_ubus_send_request() and
uh_ubus_allowed(). Thanks to this change global "buf" variable is used
only for replies and doesn't require state tracking & reinitialization.

Signed-off-by: Rafał Miłecki <rafal@milecki.pl>
---
This drops extra init call from the uh_ubus_init_response(). Code now
simply depends on initial init in the uh_ubus_handle_request().
---
 ubus.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
diff mbox series

Patch

diff --git a/ubus.c b/ubus.c
index 97cc1e2..97c6cda 100644
--- a/ubus.c
+++ b/ubus.c
@@ -194,7 +194,6 @@  static void uh_ubus_init_response(struct client *cl)
 	struct dispatch_ubus *du = &cl->dispatch.ubus;
 	struct json_object *obj = du->jsobj_cur, *obj2 = NULL;
 
-	blob_buf_init(&buf, 0);
 	blobmsg_add_string(&buf, "jsonrpc", "2.0");
 
 	if (obj)
@@ -517,6 +516,7 @@  static void uh_ubus_handle_request_object(struct client *cl, struct json_object
 	struct dispatch_ubus *du = &cl->dispatch.ubus;
 	struct rpc_data data = {};
 	enum rpc_error err = ERROR_PARSE;
+	static struct blob_buf req;
 
 	uh_client_ref(cl);
 
@@ -524,11 +524,11 @@  static void uh_ubus_handle_request_object(struct client *cl, struct json_object
 		goto error;
 
 	du->jsobj_cur = obj;
-	blob_buf_init(&buf, 0);
-	if (!blobmsg_add_object(&buf, obj))
+	blob_buf_init(&req, 0);
+	if (!blobmsg_add_object(&req, obj))
 		goto error;
 
-	if (!parse_json_rpc(&data, buf.head))
+	if (!parse_json_rpc(&data, req.head))
 		goto error;
 
 	if (!strcmp(data.method, "call")) {