From dbe72f50bc45dbcc30c978edf007741ae2a32c03 Mon Sep 17 00:00:00 2001 From: eeff <33566201+eeff@users.noreply.github.com> Date: Tue, 9 Jan 2024 15:37:13 +0800 Subject: [PATCH] feat(restful): add node api support setting --- plugins/restful/adapter_handle.c | 5 ++++- src/parser/neu_json_node.c | 8 ++++++++ src/parser/neu_json_node.h | 1 + 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/plugins/restful/adapter_handle.c b/plugins/restful/adapter_handle.c index a45651b9..b281f44f 100644 --- a/plugins/restful/adapter_handle.c +++ b/plugins/restful/adapter_handle.c @@ -52,8 +52,11 @@ void handle_add_adapter(nng_aio *aio) header.type = NEU_REQ_ADD_NODE; strcpy(cmd.node, req->name); strcpy(cmd.plugin, req->plugin); - ret = neu_plugin_op(plugin, header, &cmd); + cmd.setting = req->setting; + req->setting = NULL; // moved + ret = neu_plugin_op(plugin, header, &cmd); if (ret != 0) { + neu_req_add_node_fini(&cmd); NEU_JSON_RESPONSE_ERROR(NEU_ERR_IS_BUSY, { neu_http_response(aio, NEU_ERR_IS_BUSY, result_error); }); diff --git a/src/parser/neu_json_node.c b/src/parser/neu_json_node.c index 943eebcd..360562f9 100644 --- a/src/parser/neu_json_node.c +++ b/src/parser/neu_json_node.c @@ -81,10 +81,17 @@ int neu_json_decode_add_node_req(char *buf, neu_json_add_node_req_t **result) req->plugin = req_elems[0].v.val_str; req->name = req_elems[1].v.val_str; + ret = neu_json_dump_key(json_obj, "params", &req->setting, false); + if (0 != ret) { + goto decode_fail; + } + *result = req; goto decode_exit; decode_fail: + free(req_elems[0].v.val_str); + free(req_elems[1].v.val_str); free(req); ret = -1; @@ -100,6 +107,7 @@ void neu_json_decode_add_node_req_free(neu_json_add_node_req_t *req) free(req->plugin); free(req->name); + free(req->setting); free(req); } diff --git a/src/parser/neu_json_node.h b/src/parser/neu_json_node.h index 478527d0..47fdb55f 100644 --- a/src/parser/neu_json_node.h +++ b/src/parser/neu_json_node.h @@ -35,6 +35,7 @@ extern "C" { typedef struct { char *name; char *plugin; + char *setting; } neu_json_add_node_req_t; int neu_json_encode_add_node_req(void *json_object, void *param);