From 5ca20da7afacb6a79c448c5bfb1e2bcd057f0f70 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Wed, 29 Oct 2014 23:57:54 -0700 Subject: [PATCH] Windows service fix -- it helps if we actually launch the control socket thing. --- control/NodeControlClient.hpp | 2 ++ ext/installfiles/windows/ZeroTier One.aip | 12 ++++++------ windows/ZeroTierOne/ZeroTierOneService.cpp | 7 +++++++ 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/control/NodeControlClient.hpp b/control/NodeControlClient.hpp index 8512ef7d7..1f567b816 100644 --- a/control/NodeControlClient.hpp +++ b/control/NodeControlClient.hpp @@ -31,6 +31,8 @@ #include #include +#include "../node/Constants.hpp" + #ifdef __WINDOWS__ #define ZT_IPC_ENDPOINT_BASE "\\\\.\\pipe\\ZeroTierOne-" #else diff --git a/ext/installfiles/windows/ZeroTier One.aip b/ext/installfiles/windows/ZeroTier One.aip index 2136a2820..8f968d2c9 100644 --- a/ext/installfiles/windows/ZeroTier One.aip +++ b/ext/installfiles/windows/ZeroTier One.aip @@ -19,11 +19,11 @@ - - + + - + @@ -291,10 +291,10 @@ - + - - + + diff --git a/windows/ZeroTierOne/ZeroTierOneService.cpp b/windows/ZeroTierOne/ZeroTierOneService.cpp index a33a30e17..de57c81a9 100644 --- a/windows/ZeroTierOne/ZeroTierOneService.cpp +++ b/windows/ZeroTierOne/ZeroTierOneService.cpp @@ -37,6 +37,9 @@ #include "../../node/Defaults.hpp" #include "../../node/Utils.hpp" +#include "../../control/NodeControlClient.hpp" +#include "../../control/NodeControlService.hpp" + #include "../../osnet/WindowsEthernetTapFactory.hpp" #include "../../osnet/WindowsRoutingTable.hpp" #include "../../osnet/NativeSocketManager.hpp" @@ -83,6 +86,8 @@ void ZeroTierOneService::threadMain() restart_node: try { + std::string authToken(ZeroTier::NodeControlClient::getAuthToken((ZeroTier::ZT_DEFAULTS.defaultHomePath + ZT_PATH_SEPARATOR_S + "authtoken.secret").c_str(),true)); + ZeroTier::WindowsEthernetTapFactory tapFactory(ZeroTier::ZT_DEFAULTS.defaultHomePath.c_str()); ZeroTier::WindowsRoutingTable routingTable; ZeroTier::NativeSocketManager socketManager(ZT_DEFAULT_UDP_PORT,0); @@ -94,6 +99,8 @@ restart_node: _node = new ZeroTier::Node(ZeroTier::ZT_DEFAULTS.defaultHomePath.c_str(),&tapFactory,&routingTable,&socketManager,false,(const char *)0); } + ZeroTier::NodeControlService controlService(_node,authToken.c_str()); + switch(_node->run()) { case ZeroTier::Node::NODE_RESTART_FOR_UPGRADE: {