From 29ba34ab7c5a8568f9f4dd6d36320f1a44fcdc50 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Tue, 21 Oct 2014 15:33:35 -0700 Subject: Kill old testnet stuff, update main.cpp for new SocketManager abstraction. --- main.cpp | 41 ++++++++++++++++++++--------------------- 1 file changed, 20 insertions(+), 21 deletions(-) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index 069c82cf..26e20220 100644 --- a/main.cpp +++ b/main.cpp @@ -71,12 +71,12 @@ #include "node/CertificateOfMembership.hpp" #include "node/EthernetTapFactory.hpp" #include "node/RoutingTable.hpp" +#include "node/SocketManager.hpp" #include "control/NodeControlClient.hpp" #include "control/NodeControlService.hpp" -#include "testnet/TestEthernetTapFactory.hpp" -#include "testnet/TestRoutingTable.hpp" +#include "osnet/NativeSocketManager.hpp" #ifdef __WINDOWS__ #include "osnet/WindowsEthernetTapFactory.hpp" @@ -568,8 +568,7 @@ static void printHelp(const char *cn,FILE *out) fprintf(out," -v - Show version"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); - fprintf(out," -T - Override root topology, do not authenticate or update"ZT_EOL_S); - fprintf(out," -u - Do not require root, use dummy tap device"ZT_EOL_S); + //fprintf(out," -T - Override root topology, do not authenticate or update"ZT_EOL_S); #ifdef __UNIX_LIKE__ fprintf(out," -d - Fork and run as daemon (Unix-ish OSes)"ZT_EOL_S); #endif @@ -626,7 +625,6 @@ int main(int argc,char **argv) unsigned int tcpPort = 0; std::string overrideRootTopology; - bool userMode = false; #ifdef __UNIX_LIKE__ bool runAsDaemon = false; #endif @@ -671,9 +669,6 @@ int main(int argc,char **argv) return 1; } break; - case 'u': - userMode = true; - break; case 'v': printf("%s"ZT_EOL_S,Node::versionString()); return 0; @@ -750,7 +745,7 @@ int main(int argc,char **argv) homeDir = ZT_DEFAULTS.defaultHomePath.c_str(); #ifdef __UNIX_LIKE__ - if ((!userMode)&&(getuid() != 0)) { + if (getuid() != 0) { fprintf(stderr,"%s: must be run as root (uid 0)\n",argv[0]); return 1; } @@ -782,7 +777,7 @@ int main(int argc,char **argv) #ifdef __WINDOWS__ if (winRunFromCommandLine) { // Running in "interactive" mode (mostly for debugging) - if ((!userMode)&&(IsCurrentUserLocalAdministrator() != TRUE)) { + if (IsCurrentUserLocalAdministrator() != TRUE) { fprintf(stderr,"%s: must be run as a local administrator."ZT_EOL_S,argv[0]); return 1; } @@ -806,6 +801,7 @@ int main(int argc,char **argv) bool needsReset = false; EthernetTapFactory *tapFactory = (EthernetTapFactory *)0; RoutingTable *routingTable = (RoutingTable *)0; + SocketManager *socketManager = (SocketManager *)0; NodeControlService *controlService = (NodeControlService *)0; try { @@ -814,15 +810,17 @@ int main(int argc,char **argv) // succeed unless something is wrong with the filesystem. std::string authToken(NodeControlClient::getAuthToken((std::string(homeDir) + ZT_PATH_SEPARATOR_S + "authtoken.secret").c_str(),true)); - if (userMode) { - tapFactory = new TestEthernetTapFactory(); - routingTable = new TestRoutingTable(); - } else { - tapFactory = ZTCreatePlatformEthernetTapFactory; - routingTable = ZTCreatePlatformRoutingTable; + tapFactory = ZTCreatePlatformEthernetTapFactory; + routingTable = ZTCreatePlatformRoutingTable; + + try { + socketManager = new NativeSocketManager(udpPort,tcpPort); + } catch ( ... ) { + fprintf(stderr,"%s: unable to bind to port: %u/UDP, %u/TCP (0 == disabled)"ZT_EOL_S,argv[0],udpPort,tcpPort); + throw; } - node = new Node(homeDir,tapFactory,routingTable,udpPort,tcpPort,needsReset,(overrideRootTopology.length() > 0) ? overrideRootTopology.c_str() : (const char *)0); + node = new Node(homeDir,tapFactory,routingTable,socketManager,needsReset,(overrideRootTopology.length() > 0) ? overrideRootTopology.c_str() : (const char *)0); controlService = new NodeControlService(node,authToken.c_str()); switch(node->run()) { @@ -832,11 +830,11 @@ int main(int argc,char **argv) if (upgPath) { if (!ZeroTierOneService::doStartUpgrade(std::string(upgPath))) { exitCode = 3; - fprintf(stderr,"%s: abnormal termination: unable to execute update at %s (doStartUpgrade failed)\n",argv[0],(upgPath) ? upgPath : "(unknown path)"); + fprintf(stderr,"%s: abnormal termination: unable to execute update at %s (doStartUpgrade failed)"ZT_EOL_S,argv[0],(upgPath) ? upgPath : "(unknown path)"); } } else { exitCode = 3; - fprintf(stderr,"%s: abnormal termination: unable to execute update at %s (no upgrade path provided)\n",argv[0],(upgPath) ? upgPath : "(unknown path)"); + fprintf(stderr,"%s: abnormal termination: unable to execute update at %s (no upgrade path provided)"ZT_EOL_S,argv[0],(upgPath) ? upgPath : "(unknown path)"); } } break; #else // __UNIX_LIKE__ @@ -854,14 +852,14 @@ int main(int argc,char **argv) ::execl(upgPath,upgPath,(char *)0); } exitCode = 3; - fprintf(stderr,"%s: abnormal termination: unable to execute update at %s\n",argv[0],(upgPath) ? upgPath : "(unknown path)"); + fprintf(stderr,"%s: abnormal termination: unable to execute update at %s"ZT_EOL_S,argv[0],(upgPath) ? upgPath : "(unknown path)"); } break; #endif // __WINDOWS__ / __UNIX_LIKE__ case Node::NODE_UNRECOVERABLE_ERROR: { exitCode = 3; const char *termReason = node->terminationMessage(); - fprintf(stderr,"%s: abnormal termination: %s\n",argv[0],(termReason) ? termReason : "(unknown reason)"); + fprintf(stderr,"%s: abnormal termination: %s"ZT_EOL_S,argv[0],(termReason) ? termReason : "(unknown reason)"); } break; default: @@ -877,6 +875,7 @@ int main(int argc,char **argv) delete controlService; delete node; node = (Node *)0; + delete socketManager; delete routingTable; delete tapFactory; -- cgit v1.2.3