Browse Source

Make TCP optional, rename port constant.

Adam Ierymenko 11 years ago
parent
commit
181369964f
4 changed files with 21 additions and 12 deletions
  1. 14 5
      main.cpp
  2. 2 2
      node/Constants.hpp
  3. 2 2
      node/Node.cpp
  4. 3 3
      node/Node.hpp

+ 14 - 5
main.cpp

@@ -93,7 +93,8 @@ static void printHelp(const char *cn,FILE *out)
 	fprintf(out,"Available switches:"ZT_EOL_S);
 	fprintf(out,"  -h                - Display this help"ZT_EOL_S);
 	fprintf(out,"  -v                - Show version"ZT_EOL_S);
-	fprintf(out,"  -p<port>          - Bind to this port for network I/O"ZT_EOL_S);
+	fprintf(out,"  -p<port>          - Port for UDP (default: 9993)"ZT_EOL_S);
+	fprintf(out,"  -t<port>          - Port for TCP (default: disabled)"ZT_EOL_S);
 #ifdef __UNIX_LIKE__
 	fprintf(out,"  -d                - Fork and run as daemon (Unix-ish OSes)"ZT_EOL_S);
 #endif
@@ -473,7 +474,8 @@ int main(int argc,char **argv)
 		return ZeroTierIdTool::main(argc,argv);
 
 	const char *homeDir = (const char *)0;
-	unsigned int port = 0;
+	unsigned int udpPort = ZT_DEFAULT_UDP_PORT;
+	unsigned int tcpPort = 0;
 #ifdef __UNIX_LIKE__
 	bool runAsDaemon = false;
 #endif
@@ -484,8 +486,15 @@ int main(int argc,char **argv)
 		if (argv[i][0] == '-') {
 			switch(argv[i][1]) {
 				case 'p':
-					port = Utils::strToUInt(argv[i] + 2);
-					if (port > 65535) {
+					udpPort = Utils::strToUInt(argv[i] + 2);
+					if (udpPort > 65535) {
+						printHelp(argv[0],stdout);
+						return 1;
+					}
+					break;
+				case 't':
+					tcpPort = Utils::strToUInt(argv[i] + 2);
+					if (tcpPort > 65535) {
 						printHelp(argv[0],stdout);
 						return 1;
 					}
@@ -626,7 +635,7 @@ int main(int argc,char **argv)
 	int exitCode = 0;
 	bool needsReset = false;
 	try {
-		node = new Node(homeDir,port,port,needsReset);
+		node = new Node(homeDir,udpPort,tcpPort,needsReset);
 		switch(node->run()) {
 #ifdef __WINDOWS__
 			case Node::NODE_RESTART_FOR_UPGRADE: {

+ 2 - 2
node/Constants.hpp

@@ -114,9 +114,9 @@ error_no_byte_order_defined;
 #define ZT_ADDRESS_RESERVED_PREFIX 0xff
 
 /**
- * Default local port for ZeroTier traffic
+ * Default local port for ZeroTier UDP traffic
  */
-#define ZT_DEFAULT_PORT 9993
+#define ZT_DEFAULT_UDP_PORT 9993
 
 /**
  * Default payload MTU for UDP packets

+ 2 - 2
node/Node.cpp

@@ -377,8 +377,8 @@ Node::Node(const char *hp,unsigned int udpPort,unsigned int tcpPort,bool resetId
 		}
 	}
 
-	impl->udpPort = ((udpPort > 0)&&(udpPort <= 0xffff)) ? udpPort : (unsigned int)ZT_DEFAULT_PORT;
-	impl->tcpPort = ((tcpPort > 0)&&(tcpPort <= 0xffff)) ? tcpPort : (unsigned int)ZT_DEFAULT_PORT;
+	impl->udpPort = udpPort & 0xffff;
+	impl->tcpPort = tcpPort & 0xffff;
 	impl->reasonForTermination = Node::NODE_RUNNING;
 	impl->started = false;
 	impl->running = false;

+ 3 - 3
node/Node.hpp

@@ -153,11 +153,11 @@ public:
 	 * The node is not executed until run() is called.
 	 *
 	 * @param hp Home directory path or NULL for system-wide default for this platform (default: NULL)
-	 * @param udpPort UDP port or 0 for default (9993) (default: 0)
-	 * @param tcpPort TCP port or 0 for default (9993) (default: 0)
+	 * @param udpPort UDP port or 0 to disable (default: 9993)
+	 * @param tcpPort TCP port or 0 to disable (default: 0)
 	 * @param resetIdentity If true, delete identity before starting and regenerate (default: false)
 	 */
-	Node(const char *hp = (const char *)0,unsigned int udpPort = 0,unsigned int tcpPort = 0,bool resetIdentity = false)
+	Node(const char *hp = (const char *)0,unsigned int udpPort = 9993,unsigned int tcpPort = 0,bool resetIdentity = false)
 		throw();
 
 	~Node();