Commit b3bec079 authored by Shuhei Matsumoto's avatar Shuhei Matsumoto Committed by Tomasz Zawadzki
Browse files

jsonrpc: Add complete_request() to access req->send_buf safely after all were sent



We want to log req->send_buf. Furthermore, we want to remove all newlines
from req->send_buf to improve readability. We can do it after all of
req->send_buf are sent. Hence, as a preparation, add a new helper
function jsonrpc_complete_request() and replace jsonrpc_free_request()
by it.

Signed-off-by: default avatarShuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I85835711976b2a60427a7ab03b786abe625cd2c7
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/18827


Reviewed-by: default avatarAleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: default avatarJim Harris <james.r.harris@intel.com>
Tested-by: default avatarSPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: default avatarSebastian Brzezinka <sebastian.brzezinka@intel.com>
Reviewed-by: default avatarKrzysztof Karas <krzysztof.karas@intel.com>
Community-CI: Mellanox Build Bot
parent 4f651a5c
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -123,6 +123,9 @@ int jsonrpc_parse_request(struct spdk_jsonrpc_server_conn *conn, const void *jso
/* Must be called only from server poll thread */
void jsonrpc_free_request(struct spdk_jsonrpc_request *request);

/* Must be called only from server poll thread */
void jsonrpc_complete_request(struct spdk_jsonrpc_request *request);

/*
 * Parse JSON data as RPC command response.
 *
+6 −0
Original line number Diff line number Diff line
@@ -276,6 +276,12 @@ jsonrpc_free_request(struct spdk_jsonrpc_request *request)
	free(request);
}

void
jsonrpc_complete_request(struct spdk_jsonrpc_request *request)
{
	jsonrpc_free_request(request);
}

struct spdk_json_write_ctx *
spdk_jsonrpc_begin_result(struct spdk_jsonrpc_request *request)
{
+1 −1
Original line number Diff line number Diff line
@@ -358,7 +358,7 @@ more:
		 * Free it and set send_request to NULL to move on to the next queued response.
		 */
		conn->send_request = NULL;
		jsonrpc_free_request(request);
		jsonrpc_complete_request(request);
		goto more;
	}