wangyu- vor 8 Jahren
Ursprung
Commit
163c335259
3 geänderte Dateien mit 79 neuen und 4 gelöschten Zeilen
  1. 1 1
      UDPspeeder
  2. 71 0
      main.cpp
  3. 7 3
      makefile

+ 1 - 1
UDPspeeder

@@ -1 +1 @@
-Subproject commit 203604e1b5ca3b989382b3f188b7c6d9014fe662
+Subproject commit c3aae9579b3d590610909230a4d334c12a9a2b19

+ 71 - 0
main.cpp

@@ -678,6 +678,63 @@ int tun_dev_server_event_loop()
 }
 
 
+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[])
 {
@@ -691,6 +748,20 @@ int main(int argc, char *argv[])
 	assert(sizeof(i16_t)==2);
 	dup2(1, 2);		//redirect stderr to stdout
 	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);
 
 	delay_manager.set_capacity(delay_capacity);

+ 7 - 3
makefile

@@ -8,15 +8,15 @@ cc_arm= /toolchains/arm-2014.05/bin/arm-none-linux-gnueabi-g++
 #cc_bcm2708=/home/wangyu/raspberry/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-g++ 
 FLAGS= -std=c++11   -Wall -Wextra -Wno-unused-variable -Wno-unused-parameter -Wno-missing-field-initializers -ggdb -I. -IUDPspeeder 
 
-SOURCES=`ls UDPspeeder/*.cpp UDPspeeder/lib/*.c|grep -v main.cpp` main.cpp
+SOURCES=`ls UDPspeeder/*.cpp UDPspeeder/lib/*.c|grep -v main.cpp|grep -v tunnel.cpp` main.cpp
 
 #INCLUDE= -I.  -IUDPspeeder
 
-NAME=tiny
+NAME=tinyvpn
 
 TARGETS=amd64 arm mips24kc_be x86  mips24kc_le
 
-TAR=${NAME}_binaries.tar.gz `echo ${TARGETS}|sed -r 's/([^ ]+)/tiny_\1/g'`
+TAR=${NAME}_binaries.tar.gz `echo ${TARGETS}|sed -r 's/([^ ]+)/tinyvpn_\1/g'`
 
 all:git_version
 	rm -f ${NAME}
@@ -28,6 +28,10 @@ debug2: git_version
 	rm -f ${NAME}
 	${cc_local}   -o ${NAME}          -I. ${SOURCES} ${FLAGS} -lrt -Wformat-nonliteral -ggdb
 
+sub:
+	git submodule init
+	git submodule update
+
 mips24kc_be: git_version
 	${cc_mips24kc_be}  -o ${NAME}_$@   -I. ${SOURCES} ${FLAGS} -lrt -lgcc_eh -static -O3