From 181369964f501c3c702971b30c82b9e84eed58db Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Thu, 27 Mar 2014 18:22:53 -0700 Subject: Make TCP optional, rename port constant. --- main.cpp | 19 ++++++++++++++----- node/Constants.hpp | 4 ++-- node/Node.cpp | 4 ++-- node/Node.hpp | 6 +++--- 4 files changed, 21 insertions(+), 12 deletions(-) diff --git a/main.cpp b/main.cpp index 73567445..73ecf051 100644 --- a/main.cpp +++ b/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 - Bind to this port for network I/O"ZT_EOL_S); + fprintf(out," -p - Port for UDP (default: 9993)"ZT_EOL_S); + fprintf(out," -t - 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: { diff --git a/node/Constants.hpp b/node/Constants.hpp index cf031e64..1b00872d 100644 --- a/node/Constants.hpp +++ b/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 diff --git a/node/Node.cpp b/node/Node.cpp index 20a049bc..913b7400 100644 --- a/node/Node.cpp +++ b/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; diff --git a/node/Node.hpp b/node/Node.hpp index bf154dc2..ceb4e745 100644 --- a/node/Node.hpp +++ b/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(); -- cgit v1.2.3