jsonrpc: Reorder spdk_jsonrpc_server_write_cb
We'll use it in spdk_jsonrpc_parse_request() soon. Change-Id: I78ad2a931787b095e65053bea4dce663a92bb3b0 Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com> Signed-off-by: Pawel Kaminski <pawelx.kaminski@intel.com> Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/459657 Reviewed-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
This commit is contained in:
parent
46f3260a69
commit
d270cd36ad
@ -102,6 +102,42 @@ invalid:
|
|||||||
spdk_jsonrpc_server_handle_error(request, SPDK_JSONRPC_ERROR_INVALID_REQUEST);
|
spdk_jsonrpc_server_handle_error(request, SPDK_JSONRPC_ERROR_INVALID_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
spdk_jsonrpc_server_write_cb(void *cb_ctx, const void *data, size_t size)
|
||||||
|
{
|
||||||
|
struct spdk_jsonrpc_request *request = cb_ctx;
|
||||||
|
size_t new_size = request->send_buf_size;
|
||||||
|
|
||||||
|
while (new_size - request->send_len < size) {
|
||||||
|
if (new_size >= SPDK_JSONRPC_SEND_BUF_SIZE_MAX) {
|
||||||
|
SPDK_ERRLOG("Send buf exceeded maximum size (%zu)\n",
|
||||||
|
(size_t)SPDK_JSONRPC_SEND_BUF_SIZE_MAX);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
new_size *= 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (new_size != request->send_buf_size) {
|
||||||
|
uint8_t *new_buf;
|
||||||
|
|
||||||
|
new_buf = realloc(request->send_buf, new_size);
|
||||||
|
if (new_buf == NULL) {
|
||||||
|
SPDK_ERRLOG("Resizing send_buf failed (current size %zu, new size %zu)\n",
|
||||||
|
request->send_buf_size, new_size);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
request->send_buf = new_buf;
|
||||||
|
request->send_buf_size = new_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(request->send_buf + request->send_len, data, size);
|
||||||
|
request->send_len += size;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int
|
int
|
||||||
spdk_jsonrpc_parse_request(struct spdk_jsonrpc_server_conn *conn, const void *json, size_t size)
|
spdk_jsonrpc_parse_request(struct spdk_jsonrpc_server_conn *conn, const void *json, size_t size)
|
||||||
{
|
{
|
||||||
@ -200,42 +236,6 @@ spdk_jsonrpc_get_conn(struct spdk_jsonrpc_request *request)
|
|||||||
return request->conn;
|
return request->conn;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
spdk_jsonrpc_server_write_cb(void *cb_ctx, const void *data, size_t size)
|
|
||||||
{
|
|
||||||
struct spdk_jsonrpc_request *request = cb_ctx;
|
|
||||||
size_t new_size = request->send_buf_size;
|
|
||||||
|
|
||||||
while (new_size - request->send_len < size) {
|
|
||||||
if (new_size >= SPDK_JSONRPC_SEND_BUF_SIZE_MAX) {
|
|
||||||
SPDK_ERRLOG("Send buf exceeded maximum size (%zu)\n",
|
|
||||||
(size_t)SPDK_JSONRPC_SEND_BUF_SIZE_MAX);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
new_size *= 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (new_size != request->send_buf_size) {
|
|
||||||
uint8_t *new_buf;
|
|
||||||
|
|
||||||
new_buf = realloc(request->send_buf, new_size);
|
|
||||||
if (new_buf == NULL) {
|
|
||||||
SPDK_ERRLOG("Resizing send_buf failed (current size %zu, new size %zu)\n",
|
|
||||||
request->send_buf_size, new_size);
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
request->send_buf = new_buf;
|
|
||||||
request->send_buf_size = new_size;
|
|
||||||
}
|
|
||||||
|
|
||||||
memcpy(request->send_buf + request->send_len, data, size);
|
|
||||||
request->send_len += size;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
static struct spdk_json_write_ctx *
|
static struct spdk_json_write_ctx *
|
||||||
begin_response(struct spdk_jsonrpc_request *request)
|
begin_response(struct spdk_jsonrpc_request *request)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user