GUI: поле действия и кнопка Send для отправки команд в utun
- Добавлен ETCPMON_CMD_ACTION в протокол (32 байта текст) - В GUI добавлено поле ввода и кнопка Send правее блока Sockets - Добавлен etcpmon_client_send_action для отправки команд - Обработка action 'nat' в control_server: запускает NAT check для всех линков - Сделана route_bgp_start_link_nat_check не-static - Добавлена route_bgp_request_nat_check_all - Исправлен баг route_ping.c (request_id -> nonce) - Исправлена линковка tests/Makefile.am
This commit is contained in:
1 parent
5b0a743e02
commit
57dba26e7c
10 files changed
+125
-5
No files matched your search
+13
-1
@@ -613,7 +613,7 @@ static void handle_client_data(struct control_server* server, struct control_cli
|
||||
close_client(server, client);
|
||||
return;
|
||||
}
|
||||
if (hdr->type < ETCPMON_CMD_LIST_CONN || hdr->type > ETCPMON_CMD_LIST_SOCKETS) {
|
||||
if (hdr->type < ETCPMON_CMD_LIST_CONN || hdr->type > ETCPMON_CMD_ACTION) {
|
||||
DEBUG_ERROR(DEBUG_CATEGORY_CONTROL, "Invalid command type from client: 0x%02X", hdr->type);
|
||||
close_client(server, client);
|
||||
return;
|
||||
@@ -684,6 +684,18 @@ static void handle_client_data(struct control_server* server, struct control_cli
|
||||
send_socket_list(server, client, req_seq);
|
||||
break;
|
||||
|
||||
case ETCPMON_CMD_ACTION:
|
||||
if (payload_size >= sizeof(struct etcpmon_cmd_action)) {
|
||||
struct etcpmon_cmd_action* cmd = (struct etcpmon_cmd_action*)payload;
|
||||
if (strncmp(cmd->action, "nat", 3) == 0) {
|
||||
DEBUG_INFO(DEBUG_CATEGORY_CONTROL, "Action 'nat' received, requesting NAT check for all links");
|
||||
route_bgp_request_nat_check_all(server->instance->bgp);
|
||||
} else {
|
||||
DEBUG_WARN(DEBUG_CATEGORY_CONTROL, "Unknown action received: '%s'", cmd->action);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case ETCPMON_CMD_DISCONNECT:
|
||||
if (server->log_file) {
|
||||
fprintf(server->log_file, "%llu: [LOG] Client requested disconnect\n",
|
||||
|
||||
Reference in new issue
Block a user