stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test
- u_async.c: process immediate_queue BEFORE epoll_wait in uasync_poll - stcp_link.c: defensive NULL etcp_conn/etcp_link in stcp_link_close - utun_instance.c: move stcp_server_list_destroy_all to Phase J (before ETCP), add deferred drain in both Phase J and L - stcp.h/c: STCP_HS_ENC_CLIENT 6→38, STCP_HS_ENC_SERVER 7→39, exchange ed25519_pubkey in both handshake directions - etcp_connections.c: copy peer_ed25519 from STCP to ETCP_CONN in etcp_link_enter_ready_tcp; guard link->etcp in tcp_link_close_cb - chat_sync.c: fix lk->conn NULL dereference for TCP links - test_stcp.c: update stcp_server_create/stcp_client_connect callsites - tools/chat_tcp_test: change transport udp→tcp
This commit is contained in:
1 parent
a3783b5f55
commit
38c9f229bc
1272 files changed
+968388
-1
No files matched your search
@@ -0,0 +1,110 @@
|
||||
/**
|
||||
* Тест настройки категорий отладки из аргументов командной строки
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include "../lib/debug_config.h"
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
DEBUG_INFO(DEBUG_CATEGORY_ALL, "=== Тест настройки категорий из аргументов ===");
|
||||
char buf[1024];
|
||||
int pos = snprintf(buf, sizeof(buf), "Запуск с аргументами: ");
|
||||
for (int i = 0; i < argc && pos < (int)sizeof(buf) - 1; i++) {
|
||||
pos += snprintf(buf + pos, sizeof(buf) - pos, "%s ", argv[i]);
|
||||
}
|
||||
DEBUG_INFO(DEBUG_CATEGORY_ALL, "%s", buf);
|
||||
|
||||
// Инициализация отладки
|
||||
debug_config_init();
|
||||
debug_set_level(DEBUG_LEVEL_INFO);
|
||||
debug_set_categories(DEBUG_CATEGORY_ALL);
|
||||
|
||||
// Анализ аргументов командной строки
|
||||
debug_category_t debug_categories = 0;
|
||||
|
||||
// Если есть специфические категории, сначала отключаем все
|
||||
int has_specific_categories = 0;
|
||||
|
||||
for (int i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "--debug-etcp") == 0) {
|
||||
has_specific_categories = 1;
|
||||
} else if (strcmp(argv[i], "--debug-queue") == 0) {
|
||||
has_specific_categories = 1;
|
||||
} else if (strcmp(argv[i], "--debug-memory") == 0) {
|
||||
has_specific_categories = 1;
|
||||
} else if (strcmp(argv[i], "--debug-none") == 0) {
|
||||
has_specific_categories = 1;
|
||||
}
|
||||
}
|
||||
|
||||
// Если есть специфические категории, отключаем все по умолчанию
|
||||
if (has_specific_categories) {
|
||||
debug_set_categories(DEBUG_CATEGORY_NONE);
|
||||
debug_categories = DEBUG_CATEGORY_NONE;
|
||||
}
|
||||
|
||||
// Теперь обрабатываем аргументы
|
||||
for (int i = 1; i < argc; i++) {
|
||||
if (strcmp(argv[i], "--debug-etcp") == 0) {
|
||||
debug_enable_category(DEBUG_CATEGORY_ETCP);
|
||||
debug_categories |= DEBUG_CATEGORY_ETCP;
|
||||
DEBUG_INFO(DEBUG_CATEGORY_ETCP, "✅ Включена категория ETCP");
|
||||
} else if (strcmp(argv[i], "--debug-queue") == 0) {
|
||||
debug_enable_category(DEBUG_CATEGORY_SYS);
|
||||
debug_categories |= DEBUG_CATEGORY_SYS;
|
||||
DEBUG_INFO(DEBUG_CATEGORY_SYS, "✅ Включена категория LL_QUEUE");
|
||||
} else if (strcmp(argv[i], "--debug-memory") == 0) {
|
||||
debug_enable_category(DEBUG_CATEGORY_SYS);
|
||||
debug_categories |= DEBUG_CATEGORY_SYS;
|
||||
DEBUG_INFO(DEBUG_CATEGORY_SYS, "✅ Включена категория MEMORY");
|
||||
} else if (strcmp(argv[i], "--debug-all") == 0) {
|
||||
debug_set_categories(DEBUG_CATEGORY_ALL);
|
||||
debug_categories = DEBUG_CATEGORY_ALL;
|
||||
DEBUG_INFO(DEBUG_CATEGORY_ALL, "✅ Включены все категории");
|
||||
break; // Все категории уже включены
|
||||
} else if (strcmp(argv[i], "--debug-none") == 0) {
|
||||
debug_set_categories(DEBUG_CATEGORY_NONE);
|
||||
debug_categories = DEBUG_CATEGORY_NONE;
|
||||
DEBUG_INFO(DEBUG_CATEGORY_ALL, "✅ Выключены все категории");
|
||||
break; // Все категории уже выключены
|
||||
} else if (strcmp(argv[i], "--level") == 0 && i+1 < argc) {
|
||||
i++;
|
||||
if (strcmp(argv[i], "error") == 0) {
|
||||
debug_set_level(DEBUG_LEVEL_ERROR);
|
||||
DEBUG_INFO(DEBUG_CATEGORY_ALL, "✅ Установлен уровень ERROR");
|
||||
} else if (strcmp(argv[i], "info") == 0) {
|
||||
debug_set_level(DEBUG_LEVEL_INFO);
|
||||
DEBUG_INFO(DEBUG_CATEGORY_ALL, "✅ Установлен уровень INFO");
|
||||
} else if (strcmp(argv[i], "debug") == 0) {
|
||||
debug_set_level(DEBUG_LEVEL_DEBUG);
|
||||
DEBUG_INFO(DEBUG_CATEGORY_ALL, "✅ Установлен уровень DEBUG");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
DEBUG_INFO(DEBUG_CATEGORY_ALL, "=== Тестовые сообщения ===");
|
||||
|
||||
// Сообщения от разных категорий
|
||||
DEBUG_INFO(DEBUG_CATEGORY_ETCP, "Сообщение от ETCP категории");
|
||||
DEBUG_INFO(DEBUG_CATEGORY_SYS, "Сообщение от LL_QUEUE категории");
|
||||
DEBUG_INFO(DEBUG_CATEGORY_SYS, "Сообщение от MEMORY категории");
|
||||
DEBUG_INFO(DEBUG_CATEGORY_CONNECTION, "Сообщение от CONNECTION категории");
|
||||
DEBUG_INFO(DEBUG_CATEGORY_CRYPTO, "Сообщение от CRYPTO категории");
|
||||
|
||||
DEBUG_INFO(DEBUG_CATEGORY_ALL, "=== Информация о текущих настройках ===");
|
||||
|
||||
char cat_buf[256];
|
||||
int cat_pos = snprintf(cat_buf, sizeof(cat_buf), "Активные категории: ");
|
||||
if (debug_categories & DEBUG_CATEGORY_ETCP) cat_pos += snprintf(cat_buf + cat_pos, sizeof(cat_buf) - cat_pos, "ETCP ");
|
||||
if (debug_categories & DEBUG_CATEGORY_SYS) cat_pos += snprintf(cat_buf + cat_pos, sizeof(cat_buf) - cat_pos, "LL_QUEUE ");
|
||||
if (debug_categories & DEBUG_CATEGORY_SYS) cat_pos += snprintf(cat_buf + cat_pos, sizeof(cat_buf) - cat_pos, "MEMORY ");
|
||||
if (debug_categories & DEBUG_CATEGORY_CONNECTION) cat_pos += snprintf(cat_buf + cat_pos, sizeof(cat_buf) - cat_pos, "CONNECTION ");
|
||||
if (debug_categories & DEBUG_CATEGORY_CRYPTO) cat_pos += snprintf(cat_buf + cat_pos, sizeof(cat_buf) - cat_pos, "CRYPTO ");
|
||||
if (debug_categories == DEBUG_CATEGORY_ALL) cat_pos += snprintf(cat_buf + cat_pos, sizeof(cat_buf) - cat_pos, "ALL ");
|
||||
if (debug_categories == DEBUG_CATEGORY_NONE) cat_pos += snprintf(cat_buf + cat_pos, sizeof(cat_buf) - cat_pos, "NONE ");
|
||||
DEBUG_INFO(DEBUG_CATEGORY_ALL, "%s", cat_buf);
|
||||
|
||||
return 0;
|
||||
}
|
||||
Reference in new issue
Block a user