From 8228ed649939f06af689aadf7514f6f07d6cb892 Mon Sep 17 00:00:00 2001 From: mIwr Date: Mon, 20 Apr 2026 10:51:24 +0300 Subject: [PATCH] Agrs validation mode support --- .gitignore | 3 +++ README.md | 6 ++++++ main.c | 13 ++++++++++++- params.h | 1 + 4 files changed, 22 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 097adc52..f8433b12 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,6 @@ +.DS_Store +/**/.DS_Store +__MACOSX/ .vscode ciadpi.exe ciadpi diff --git a/README.md b/README.md index 946d7461..18140de7 100644 --- a/README.md +++ b/README.md @@ -36,6 +36,12 @@ ciadpi --fake -1 --ttl 8 -b, --buf-size Максимальный размер данных, получаемых и отправляемых за один вызов recv/send Размер указывается в байтах, по умолчанию равен 16384 + +-x, --debug + Уровень логгирования (число): 0 (LOG_E - Error), 1 (LOG_S - Аналог Info/Debug (S - Short)), 2 (LOG_L - Аналог Verbose (L - Long)) + +-z, --validate + Запуск в режиме валидации: проверяет аргументы запуска без непосредственного старта SOCKS -g, --def-ttl Значение TTL для всех исходящий соединений diff --git a/main.c b/main.c index 8e4860bd..0dbad823 100644 --- a/main.c +++ b/main.c @@ -58,7 +58,8 @@ struct params params = { .laddr = { .in = { .sin_family = AF_INET } }, - .debug = 0 + .debug = 0, + .validate = 0 }; @@ -78,6 +79,7 @@ static const char help_text[] = { " -I --conn-ip Connection binded IP, default ::\n" " -b, --buf-size Buffer size, default 16384\n" " -x, --debug Print logs, 0, 1 or 2\n" + " -z, --validate Checks args without proxy run\n" " -g, --def-ttl TTL for all outgoing connections\n" // desync options #ifdef TCP_FASTOPEN_CONNECT @@ -144,6 +146,7 @@ const struct option options[] = { {"buf-size", 1, 0, 'b'}, {"max-conn", 1, 0, 'c'}, {"debug", 1, 0, 'x'}, + {"validate", 0, 0, 'z'}, #ifdef TCP_FASTOPEN_CONNECT {"tfo", 0, 0, 'F'}, @@ -666,6 +669,7 @@ void clear_params(char *line, char **argv) for (int i = 0; i < params.need_free_n; i++) { free(params.need_free[i]); } + params.validate = 0; params.need_free_n = 0; struct desync_params *dp = params.dp; @@ -807,6 +811,9 @@ int parse_args(int argc, char **argv) if (params.debug < 0) invalid = 1; break; + case 'z': + params.validate = 1; + break; case 'y': dp->cache_file = optarg; @@ -1381,6 +1388,10 @@ int main(int argc, char **argv) clear_params(cmd_line, argv); return status - 1; } + if (params.validate) { + clear_params(cmd_line, argv); + return status; + } INIT_ADDR_STR(params.laddr); LOG(LOG_S, "listen address: %s:%d\n", ADDR_STR, ntohs(params.laddr.in.sin_port)); diff --git a/params.h b/params.h index 67b50415..6d9fdb64 100644 --- a/params.h +++ b/params.h @@ -159,6 +159,7 @@ struct params { bool auto_reconnect; int max_open; int debug; + bool validate; size_t bfsize; union sockaddr_u baddr; union sockaddr_u laddr;