mirror of
https://github.com/wangyu-/UDPspeeder.git
synced 2025-01-31 20:29:37 +08:00
refactor
This commit is contained in:
parent
d9f80781a2
commit
c3aae9579b
75
main.cpp
75
main.cpp
@ -13,6 +13,65 @@
|
|||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
static void print_help()
|
||||||
|
{
|
||||||
|
char git_version_buf[100]={0};
|
||||||
|
strncpy(git_version_buf,gitversion,10);
|
||||||
|
|
||||||
|
printf("UDPspeeder V2\n");
|
||||||
|
printf("git version: %s ",git_version_buf);
|
||||||
|
printf("build date: %s %s\n",__DATE__,__TIME__);
|
||||||
|
printf("repository: https://github.com/wangyu-/UDPspeeder\n");
|
||||||
|
printf("\n");
|
||||||
|
printf("usage:\n");
|
||||||
|
printf(" run as client: ./this_program -c -l local_listen_ip:local_port -r server_ip:server_port [options]\n");
|
||||||
|
printf(" run as server: ./this_program -s -l server_listen_ip:server_port -r remote_ip:remote_port [options]\n");
|
||||||
|
printf("\n");
|
||||||
|
printf("common options, must be same on both sides:\n");
|
||||||
|
printf(" -k,--key <string> key for simple xor encryption. if not set, xor is disabled\n");
|
||||||
|
|
||||||
|
printf("main options:\n");
|
||||||
|
printf(" -f,--fec x:y forward error correction, send y redundant packets for every x packets\n");
|
||||||
|
printf(" --timeout <number> how long could a packet be held in queue before doing fec, unit: ms, default: 8ms\n");
|
||||||
|
printf(" --mode <number> fec-mode,available values: 0, 1; 0 cost less bandwidth, 1 cost less latency(default)\n");
|
||||||
|
printf(" --report <number> turn on send/recv report, and set a period for reporting, unit: s\n");
|
||||||
|
|
||||||
|
printf("advanced options:\n");
|
||||||
|
printf(" --mtu <number> mtu. for mode 0, the program will split packet to segment smaller than mtu_value.\n");
|
||||||
|
printf(" for mode 1, no packet will be split, the program just check if the mtu is exceed.\n");
|
||||||
|
printf(" default value: 1250\n");
|
||||||
|
printf(" -j,--jitter <number> simulated jitter. randomly delay first packet for 0~<number> ms, default value: 0.\n");
|
||||||
|
printf(" do not use if you dont know what it means.\n");
|
||||||
|
printf(" -i,--interval <number> scatter each fec group to a interval of <number> ms, to protect burst packet loss.\n");
|
||||||
|
printf(" default value: 0. do not use if you dont know what it means.\n");
|
||||||
|
printf(" --random-drop <number> simulate packet loss, unit: 0.01%%. default value: 0\n");
|
||||||
|
printf(" --disable-obscure <number> disable obscure, to save a bit bandwidth and cpu\n");
|
||||||
|
// printf(" --disable-xor <number> disable xor\n");
|
||||||
|
|
||||||
|
printf("developer options:\n");
|
||||||
|
printf(" --fifo <string> use a fifo(named pipe) for sending commands to the running program, so that you\n");
|
||||||
|
printf(" can change fec encode parameters dynamically, check readme.md in repository for\n");
|
||||||
|
printf(" supported commands.\n");
|
||||||
|
printf(" -j ,--jitter jmin:jmax similiar to -j above, but create jitter randomly between jmin and jmax\n");
|
||||||
|
printf(" -i,--interval imin:imax similiar to -i above, but scatter randomly between imin and imax\n");
|
||||||
|
printf(" -q,--queue-len <number> max fec queue len, only for mode 0\n");
|
||||||
|
printf(" --decode-buf <number> size of buffer of fec decoder,u nit: packet, default: 2000\n");
|
||||||
|
printf(" --fix-latency <number> try to stabilize latency, only for mode 0\n");
|
||||||
|
printf(" --delay-capacity <number> max number of delayed packets\n");
|
||||||
|
printf(" --disable-fec <number> completely disable fec, turn the program into a normal udp tunnel\n");
|
||||||
|
printf(" --sock-buf <number> buf size for socket, >=10 and <=10240, unit: kbyte, default: 1024\n");
|
||||||
|
printf("log and help options:\n");
|
||||||
|
printf(" --log-level <number> 0: never 1: fatal 2: error 3: warn \n");
|
||||||
|
printf(" 4: info (default) 5: debug 6: trace\n");
|
||||||
|
printf(" --log-position enable file name, function name, line number in log\n");
|
||||||
|
printf(" --disable-color disable log color\n");
|
||||||
|
printf(" -h,--help print this help message\n");
|
||||||
|
|
||||||
|
//printf("common options,these options must be same on both side\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
//working_mode=tunnel_mode;
|
//working_mode=tunnel_mode;
|
||||||
@ -25,6 +84,22 @@ int main(int argc, char *argv[])
|
|||||||
assert(sizeof(i16_t)==2);
|
assert(sizeof(i16_t)==2);
|
||||||
dup2(1, 2); //redirect stderr to stdout
|
dup2(1, 2); //redirect stderr to stdout
|
||||||
int i, j, k;
|
int i, j, k;
|
||||||
|
|
||||||
|
if (argc == 1)
|
||||||
|
{
|
||||||
|
print_help();
|
||||||
|
myexit( -1);
|
||||||
|
}
|
||||||
|
for (i = 0; i < argc; i++)
|
||||||
|
{
|
||||||
|
if(strcmp(argv[i],"-h")==0||strcmp(argv[i],"--help")==0)
|
||||||
|
{
|
||||||
|
print_help();
|
||||||
|
myexit(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
process_arg(argc,argv);
|
process_arg(argc,argv);
|
||||||
|
|
||||||
delay_manager.set_capacity(delay_capacity);
|
delay_manager.set_capacity(delay_capacity);
|
||||||
|
79
misc.cpp
79
misc.cpp
@ -566,15 +566,11 @@ void process_arg(int argc, char *argv[])
|
|||||||
{"jitter", required_argument, 0,'j'},
|
{"jitter", required_argument, 0,'j'},
|
||||||
{"fifo", required_argument, 0, 1},
|
{"fifo", required_argument, 0, 1},
|
||||||
{"sub-net", required_argument, 0, 1},
|
{"sub-net", required_argument, 0, 1},
|
||||||
{"tun-dev", required_argument, 0, 1},
|
{"tun-dev", optional_argument, 0, 1},
|
||||||
{NULL, 0, 0, 0}
|
{NULL, 0, 0, 0}
|
||||||
};
|
};
|
||||||
int option_index = 0;
|
int option_index = 0;
|
||||||
if (argc == 1)
|
|
||||||
{
|
|
||||||
print_help();
|
|
||||||
myexit( -1);
|
|
||||||
}
|
|
||||||
for (i = 0; i < argc; i++)
|
for (i = 0; i < argc; i++)
|
||||||
{
|
{
|
||||||
if(strcmp(argv[i],"--unit-test")==0)
|
if(strcmp(argv[i],"--unit-test")==0)
|
||||||
@ -583,14 +579,7 @@ void process_arg(int argc, char *argv[])
|
|||||||
myexit(0);
|
myexit(0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (i = 0; i < argc; i++)
|
|
||||||
{
|
|
||||||
if(strcmp(argv[i],"-h")==0||strcmp(argv[i],"--help")==0)
|
|
||||||
{
|
|
||||||
print_help();
|
|
||||||
myexit(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
for (i = 0; i < argc; i++)
|
for (i = 0; i < argc; i++)
|
||||||
{
|
{
|
||||||
if(strcmp(argv[i],"--log-level")==0)
|
if(strcmp(argv[i],"--log-level")==0)
|
||||||
@ -621,11 +610,6 @@ void process_arg(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
log_bare(log_info, "\n");
|
log_bare(log_info, "\n");
|
||||||
|
|
||||||
if (argc == 1)
|
|
||||||
{
|
|
||||||
print_help();
|
|
||||||
myexit(-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
int no_l = 1, no_r = 1;
|
int no_l = 1, no_r = 1;
|
||||||
while ((opt = getopt_long(argc, argv, "l:r:hcsk:j:f:p:n:i:q:",long_options,&option_index)) != -1)
|
while ((opt = getopt_long(argc, argv, "l:r:hcsk:j:f:p:n:i:q:",long_options,&option_index)) != -1)
|
||||||
@ -959,60 +943,3 @@ void process_arg(int argc, char *argv[])
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void print_help()
|
|
||||||
{
|
|
||||||
char git_version_buf[100]={0};
|
|
||||||
strncpy(git_version_buf,gitversion,10);
|
|
||||||
|
|
||||||
printf("UDPspeeder V2\n");
|
|
||||||
printf("git version: %s ",git_version_buf);
|
|
||||||
printf("build date: %s %s\n",__DATE__,__TIME__);
|
|
||||||
printf("repository: https://github.com/wangyu-/UDPspeeder\n");
|
|
||||||
printf("\n");
|
|
||||||
printf("usage:\n");
|
|
||||||
printf(" run as client: ./this_program -c -l local_listen_ip:local_port -r server_ip:server_port [options]\n");
|
|
||||||
printf(" run as server: ./this_program -s -l server_listen_ip:server_port -r remote_ip:remote_port [options]\n");
|
|
||||||
printf("\n");
|
|
||||||
printf("common options, must be same on both sides:\n");
|
|
||||||
printf(" -k,--key <string> key for simple xor encryption. if not set, xor is disabled\n");
|
|
||||||
|
|
||||||
printf("main options:\n");
|
|
||||||
printf(" -f,--fec x:y forward error correction, send y redundant packets for every x packets\n");
|
|
||||||
printf(" --timeout <number> how long could a packet be held in queue before doing fec, unit: ms, default: 8ms\n");
|
|
||||||
printf(" --mode <number> fec-mode,available values: 0, 1; 0 cost less bandwidth, 1 cost less latency(default)\n");
|
|
||||||
printf(" --report <number> turn on send/recv report, and set a period for reporting, unit: s\n");
|
|
||||||
|
|
||||||
printf("advanced options:\n");
|
|
||||||
printf(" --mtu <number> mtu. for mode 0, the program will split packet to segment smaller than mtu_value.\n");
|
|
||||||
printf(" for mode 1, no packet will be split, the program just check if the mtu is exceed.\n");
|
|
||||||
printf(" default value: 1250\n");
|
|
||||||
printf(" -j,--jitter <number> simulated jitter. randomly delay first packet for 0~<number> ms, default value: 0.\n");
|
|
||||||
printf(" do not use if you dont know what it means.\n");
|
|
||||||
printf(" -i,--interval <number> scatter each fec group to a interval of <number> ms, to protect burst packet loss.\n");
|
|
||||||
printf(" default value: 0. do not use if you dont know what it means.\n");
|
|
||||||
printf(" --random-drop <number> simulate packet loss, unit: 0.01%%. default value: 0\n");
|
|
||||||
printf(" --disable-obscure <number> disable obscure, to save a bit bandwidth and cpu\n");
|
|
||||||
// printf(" --disable-xor <number> disable xor\n");
|
|
||||||
|
|
||||||
printf("developer options:\n");
|
|
||||||
printf(" --fifo <string> use a fifo(named pipe) for sending commands to the running program, so that you\n");
|
|
||||||
printf(" can change fec encode parameters dynamically, check readme.md in repository for\n");
|
|
||||||
printf(" supported commands.\n");
|
|
||||||
printf(" -j ,--jitter jmin:jmax similiar to -j above, but create jitter randomly between jmin and jmax\n");
|
|
||||||
printf(" -i,--interval imin:imax similiar to -i above, but scatter randomly between imin and imax\n");
|
|
||||||
printf(" -q,--queue-len <number> max fec queue len, only for mode 0\n");
|
|
||||||
printf(" --decode-buf <number> size of buffer of fec decoder,u nit: packet, default: 2000\n");
|
|
||||||
printf(" --fix-latency <number> try to stabilize latency, only for mode 0\n");
|
|
||||||
printf(" --delay-capacity <number> max number of delayed packets\n");
|
|
||||||
printf(" --disable-fec <number> completely disable fec, turn the program into a normal udp tunnel\n");
|
|
||||||
printf(" --sock-buf <number> buf size for socket, >=10 and <=10240, unit: kbyte, default: 1024\n");
|
|
||||||
printf("log and help options:\n");
|
|
||||||
printf(" --log-level <number> 0: never 1: fatal 2: error 3: warn \n");
|
|
||||||
printf(" 4: info (default) 5: debug 6: trace\n");
|
|
||||||
printf(" --log-position enable file name, function name, line number in log\n");
|
|
||||||
printf(" --disable-color disable log color\n");
|
|
||||||
printf(" -h,--help print this help message\n");
|
|
||||||
|
|
||||||
//printf("common options,these options must be same on both side\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user