diff --git a/src/adapter/adapter.c b/src/adapter/adapter.c index 91fd9249..c51eed81 100644 --- a/src/adapter/adapter.c +++ b/src/adapter/adapter.c @@ -1014,12 +1014,22 @@ static int adapter_command(neu_adapter_t *adapter, neu_request_t *cmd, } case NEU_REQRESP_SET_NODE_SETTING: { - ADAPTER_RESP_CODE(adapter, cmd, intptr_t, neu_cmd_set_node_setting_t, - rv, NEU_REQRESP_ERR_CODE, p_result, { - ret = neu_manager_adapter_set_setting( - adapter->manager, req_cmd->node_id, - req_cmd->setting); - }); + ADAPTER_RESP_CODE( + adapter, cmd, intptr_t, neu_cmd_set_node_setting_t, rv, + NEU_REQRESP_ERR_CODE, p_result, { + ret = neu_manager_adapter_set_setting( + adapter->manager, req_cmd->node_id, req_cmd->setting); + if (ret == 0) { + neu_cmd_set_node_setting_t event = {}; + event.node_id = req_cmd->node_id; + event.setting = strdup(req_cmd->setting); + if (NULL != event.setting) { + ADAPTER_SEND_BUF(adapter, rv, + MSG_EVENT_SET_NODE_SETTING, &event, + sizeof(event)); + } + } + }); break; } diff --git a/src/core/message.h b/src/core/message.h index 997b3df2..bd61dc4a 100644 --- a/src/core/message.h +++ b/src/core/message.h @@ -62,6 +62,7 @@ typedef enum msg_type { MSG_EVENT_NODE_PING, MSG_EVENT_ADD_NODE, MSG_EVENT_UPDATE_NODE, + MSG_EVENT_SET_NODE_SETTING, MSG_EVENT_DEL_NODE, MSG_EVENT_ADD_PLUGIN, MSG_EVENT_UPDATE_PLUGIN,