From 76f3b87d069f79fe8cbfb7b5dac3f0cd22cfa882 Mon Sep 17 00:00:00 2001 From: "oljas.jarasbaev" <oljas.jarasbaev@demlabs.net> Date: Mon, 15 Jul 2024 11:57:58 +0000 Subject: [PATCH] Bugfix 12135 --- modules/net/dap_chain_node_cli_cmd.c | 39 ++++++++++++++++------------ 1 file changed, 22 insertions(+), 17 deletions(-) diff --git a/modules/net/dap_chain_node_cli_cmd.c b/modules/net/dap_chain_node_cli_cmd.c index e88688ca77..9c2e3d2b38 100644 --- a/modules/net/dap_chain_node_cli_cmd.c +++ b/modules/net/dap_chain_node_cli_cmd.c @@ -919,6 +919,7 @@ int com_node(int a_argc, char ** a_argv, void **a_str_reply) switch (cmd_num) { case CMD_ADD: { + int l_res = -10; if (l_addr_str && dap_chain_net_is_my_node_authorized(l_net)) { // We're in authorized list, add directly uint16_t l_port = 0; @@ -935,27 +936,31 @@ int com_node(int a_argc, char ** a_argv, void **a_str_reply) } } l_node_info->ext_host_len = dap_strlen(l_node_info->ext_host); - int l_res = dap_chain_node_info_save(l_net, l_node_info); + l_res = dap_chain_node_info_save(l_net, l_node_info); if (l_res) dap_cli_server_cmd_set_reply_text(a_str_reply, "Can't add node %s, error %d", l_addr_str, l_res); else dap_cli_server_cmd_set_reply_text(a_str_reply, "Successfully added node %s", l_addr_str); - return l_res; - } - // Synchronous request, wait for reply - int l_res = dap_chain_net_node_list_request(l_net, - l_port_str ? strtoul(l_port_str, NULL, 10) : dap_chain_net_get_my_node_info(l_net)->ext_port, - true, 'a'); - switch (l_res) - { - case 1: dap_cli_server_cmd_set_reply_text(a_str_reply, "Successfully added"); return 0; - case 2: dap_cli_server_cmd_set_reply_text(a_str_reply, "No server"); break; - case 3: dap_cli_server_cmd_set_reply_text(a_str_reply, "Didn't add your address node to node list"); break; - case 4: dap_cli_server_cmd_set_reply_text(a_str_reply, "Can't calculate hash for your addr"); break; - case 5: dap_cli_server_cmd_set_reply_text(a_str_reply, "Can't do handshake for your node"); break; - case 6: dap_cli_server_cmd_set_reply_text(a_str_reply, "The node already exists"); break; - case 7: dap_cli_server_cmd_set_reply_text(a_str_reply, "Can't process node list HTTP request"); break; - default:dap_cli_server_cmd_set_reply_text(a_str_reply, "Can't process request, error %d", l_res); break; + } else if (l_hostname) { + dap_cli_server_cmd_set_reply_text(a_str_reply, "You have no access rights"); + } else if (l_addr_str) { + // Synchronous request, wait for reply + l_res = dap_chain_net_node_list_request(l_net, + l_port_str ? strtoul(l_port_str, NULL, 10) : dap_chain_net_get_my_node_info(l_net)->ext_port, + true, 'a'); + switch (l_res) + { + case 1: dap_cli_server_cmd_set_reply_text(a_str_reply, "Successfully added"); return 0; + case 2: dap_cli_server_cmd_set_reply_text(a_str_reply, "No server"); break; + case 3: dap_cli_server_cmd_set_reply_text(a_str_reply, "Didn't add your address node to node list"); break; + case 4: dap_cli_server_cmd_set_reply_text(a_str_reply, "Can't calculate hash for your addr"); break; + case 5: dap_cli_server_cmd_set_reply_text(a_str_reply, "Can't do handshake for your node"); break; + case 6: dap_cli_server_cmd_set_reply_text(a_str_reply, "The node already exists"); break; + case 7: dap_cli_server_cmd_set_reply_text(a_str_reply, "Can't process node list HTTP request"); break; + default:dap_cli_server_cmd_set_reply_text(a_str_reply, "Can't process request, error %d", l_res); break; + } + } else { + dap_cli_server_cmd_set_reply_text(a_str_reply, "node add requires parameter '-addr'"); } return l_res; } -- GitLab