Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
.DS_Store
/**/.DS_Store
__MACOSX/
.vscode
ciadpi.exe
ciadpi
Expand Down
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,12 @@ ciadpi --fake -1 --ttl 8
-b, --buf-size <size>
Максимальный размер данных, получаемых и отправляемых за один вызов recv/send
Размер указывается в байтах, по умолчанию равен 16384

-x, --debug <level>
Уровень логгирования (число): 0 (LOG_E - Error), 1 (LOG_S - Аналог Info/Debug (S - Short)), 2 (LOG_L - Аналог Verbose (L - Long))

-z, --validate
Запуск в режиме валидации: проверяет аргументы запуска без непосредственного старта SOCKS

-g, --def-ttl <num>
Значение TTL для всех исходящий соединений
Expand Down
13 changes: 12 additions & 1 deletion main.c
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,8 @@ struct params params = {
.laddr = {
.in = { .sin_family = AF_INET }
},
.debug = 0
.debug = 0,
.validate = 0
};


Expand All @@ -78,6 +79,7 @@ static const char help_text[] = {
" -I --conn-ip <ip> Connection binded IP, default ::\n"
" -b, --buf-size <size> Buffer size, default 16384\n"
" -x, --debug <level> Print logs, 0, 1 or 2\n"
" -z, --validate Checks args without proxy run\n"
" -g, --def-ttl <num> TTL for all outgoing connections\n"
// desync options
#ifdef TCP_FASTOPEN_CONNECT
Expand Down Expand Up @@ -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'},
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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));

Expand Down
1 change: 1 addition & 0 deletions params.h
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down