From 99471834dcf33d0c71848579265a5dfaa58990de Mon Sep 17 00:00:00 2001 From: "pavel.uhanov" <pavel.uhanov@demlabs.net> Date: Thu, 27 Feb 2025 18:03:55 +0300 Subject: [PATCH] [*] add s_allowed_cmd_control flag --- net/server/cli_server/dap_cli_server.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/net/server/cli_server/dap_cli_server.c b/net/server/cli_server/dap_cli_server.c index b8b1fe6d6..8506df8c7 100644 --- a/net/server/cli_server/dap_cli_server.c +++ b/net/server/cli_server/dap_cli_server.c @@ -54,6 +54,7 @@ static dap_server_t *s_cli_server = NULL; static bool s_debug_cli = false; +static bool s_allowed_cmd_control = false; static dap_cli_cmd_t *cli_commands = NULL; static dap_cli_cmd_aliases_t *s_command_alias = NULL; @@ -119,11 +120,11 @@ DAP_STATIC_INLINE void s_cli_cmd_schedule(dap_events_socket_t *a_es, void *a_arg if ( a_es->buf_in_size < l_arg->buf_size + l_hdr_len ) return; - if ( ((struct sockaddr_in*)&a_es->addr_storage)->sin_addr.s_addr != htonl(INADDR_LOOPBACK) + if ( (((struct sockaddr_in*)&a_es->addr_storage)->sin_addr.s_addr != htonl(INADDR_LOOPBACK) #ifdef DAP_OS_UNIX - && a_es->addr_storage.ss_family != AF_UNIX + && a_es->addr_storage.ss_family != AF_UNIX #endif - && !s_allowed_cmd_check(l_arg->buf) ) { + ) || (((struct sockaddr_in*)&a_es->addr_storage)->sin_addr.s_addr && s_allowed_cmd_control && !s_allowed_cmd_check(l_arg->buf) ) ) { dap_events_socket_write_f_unsafe(a_es, "HTTP/1.1 403 Forbidden\r\n"); a_es->flags |= DAP_SOCK_SIGNAL_CLOSE; return; @@ -173,6 +174,7 @@ int dap_cli_server_init(bool a_debug_more, const char *a_cfg_section) log_it(L_ERROR, "CLI server not initialized"); return -2; } + s_allowed_cmd_control = dap_config_get_item_bool_default(g_config, a_cfg_section, "allowed_cmd_control", s_allowed_cmd_control); log_it(L_INFO, "CLI server initialized"); return 0; } -- GitLab