mirror of
https://github.com/ZeroTier/ZeroTierOne
synced 2025-08-14 10:37:33 -07:00
We now always build the controller in ZeroTier One, at least for desktop and server targets. Also means that ZeroTier One now requires C++11. (Still keeping C++11 out of the core in node/ though.)
This commit is contained in:
parent
cc808cc2dd
commit
a13f4d8353
10 changed files with 24 additions and 86 deletions
|
@ -34,9 +34,7 @@
|
|||
#include "../ext/json-parser/json.h"
|
||||
#endif
|
||||
|
||||
#ifdef ZT_ENABLE_NETWORK_CONTROLLER
|
||||
#include "../controller/SqliteNetworkController.hpp"
|
||||
#endif
|
||||
#include "../controller/EmbeddedNetworkController.hpp"
|
||||
|
||||
#include "../node/InetAddress.hpp"
|
||||
#include "../node/Node.hpp"
|
||||
|
@ -254,9 +252,7 @@ static void _jsonAppend(unsigned int depth,std::string &buf,const ZT_Peer *peer)
|
|||
ControlPlane::ControlPlane(OneService *svc,Node *n,const char *uiStaticPath) :
|
||||
_svc(svc),
|
||||
_node(n),
|
||||
#ifdef ZT_ENABLE_NETWORK_CONTROLLER
|
||||
_controller((SqliteNetworkController *)0),
|
||||
#endif
|
||||
_controller((EmbeddedNetworkController *)0),
|
||||
_uiStaticPath((uiStaticPath) ? uiStaticPath : "")
|
||||
{
|
||||
}
|
||||
|
@ -499,13 +495,9 @@ unsigned int ControlPlane::handleRequest(
|
|||
responseContentType = "text/plain";
|
||||
scode = 200;
|
||||
} else {
|
||||
#ifdef ZT_ENABLE_NETWORK_CONTROLLER
|
||||
if (_controller)
|
||||
scode = _controller->handleControlPlaneHttpGET(std::vector<std::string>(ps.begin()+1,ps.end()),urlArgs,headers,body,responseBody,responseContentType);
|
||||
else scode = 404;
|
||||
#else
|
||||
scode = 404;
|
||||
#endif
|
||||
}
|
||||
|
||||
} else scode = 401; // isAuth == false
|
||||
|
@ -559,13 +551,9 @@ unsigned int ControlPlane::handleRequest(
|
|||
} else scode = 500;
|
||||
}
|
||||
} else {
|
||||
#ifdef ZT_ENABLE_NETWORK_CONTROLLER
|
||||
if (_controller)
|
||||
scode = _controller->handleControlPlaneHttpPOST(std::vector<std::string>(ps.begin()+1,ps.end()),urlArgs,headers,body,responseBody,responseContentType);
|
||||
else scode = 404;
|
||||
#else
|
||||
scode = 404;
|
||||
#endif
|
||||
}
|
||||
|
||||
} else scode = 401; // isAuth == false
|
||||
|
@ -594,13 +582,9 @@ unsigned int ControlPlane::handleRequest(
|
|||
_node->freeQueryResult((void *)nws);
|
||||
} else scode = 500;
|
||||
} else {
|
||||
#ifdef ZT_ENABLE_NETWORK_CONTROLLER
|
||||
if (_controller)
|
||||
scode = _controller->handleControlPlaneHttpDELETE(std::vector<std::string>(ps.begin()+1,ps.end()),urlArgs,headers,body,responseBody,responseContentType);
|
||||
else scode = 404;
|
||||
#else
|
||||
scode = 404;
|
||||
#endif
|
||||
}
|
||||
|
||||
} else {
|
||||
|
|
|
@ -31,7 +31,7 @@ namespace ZeroTier {
|
|||
|
||||
class OneService;
|
||||
class Node;
|
||||
class SqliteNetworkController;
|
||||
class EmbeddedNetworkController;
|
||||
struct InetAddress;
|
||||
|
||||
/**
|
||||
|
@ -43,18 +43,16 @@ public:
|
|||
ControlPlane(OneService *svc,Node *n,const char *uiStaticPath);
|
||||
~ControlPlane();
|
||||
|
||||
#ifdef ZT_ENABLE_NETWORK_CONTROLLER
|
||||
/**
|
||||
* Set controller, which will be available under /controller
|
||||
*
|
||||
* @param c Network controller instance
|
||||
*/
|
||||
inline void setController(SqliteNetworkController *c)
|
||||
inline void setController(EmbeddedNetworkController *c)
|
||||
{
|
||||
Mutex::Lock _l(_lock);
|
||||
_controller = c;
|
||||
}
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Add an authentication token for API access
|
||||
|
@ -89,9 +87,7 @@ public:
|
|||
private:
|
||||
OneService *const _svc;
|
||||
Node *const _node;
|
||||
#ifdef ZT_ENABLE_NETWORK_CONTROLLER
|
||||
SqliteNetworkController *_controller;
|
||||
#endif
|
||||
EmbeddedNetworkController *_controller;
|
||||
std::string _uiStaticPath;
|
||||
std::set<std::string> _authTokens;
|
||||
Mutex _lock;
|
||||
|
|
|
@ -69,11 +69,7 @@
|
|||
*/
|
||||
//#define ZT_BREAK_UDP
|
||||
|
||||
#ifdef ZT_ENABLE_NETWORK_CONTROLLER
|
||||
#include "../controller/SqliteNetworkController.hpp"
|
||||
#else
|
||||
class SqliteNetworkController;
|
||||
#endif // ZT_ENABLE_NETWORK_CONTROLLER
|
||||
#include "../controller/EmbeddedNetworkController.hpp"
|
||||
|
||||
#ifdef __WINDOWS__
|
||||
#include <WinSock2.h>
|
||||
|
@ -129,7 +125,7 @@ namespace ZeroTier { typedef BSDEthernetTap EthernetTap; }
|
|||
#define ZT_TAP_CHECK_MULTICAST_INTERVAL 5000
|
||||
|
||||
// Path under ZT1 home for controller database if controller is enabled
|
||||
#define ZT_CONTROLLER_DB_PATH "controller.db"
|
||||
#define ZT_CONTROLLER_DB_PATH "controller.d"
|
||||
|
||||
// TCP fallback relay host -- geo-distributed using Amazon Route53 geo-aware DNS
|
||||
#define ZT_TCP_FALLBACK_RELAY "tcp-fallback.zerotier.com"
|
||||
|
@ -487,9 +483,7 @@ public:
|
|||
|
||||
const std::string _homePath;
|
||||
BackgroundResolver _tcpFallbackResolver;
|
||||
#ifdef ZT_ENABLE_NETWORK_CONTROLLER
|
||||
SqliteNetworkController *_controller;
|
||||
#endif
|
||||
EmbeddedNetworkController *_controller;
|
||||
Phy<OneServiceImpl *> _phy;
|
||||
Node *_node;
|
||||
|
||||
|
@ -579,9 +573,7 @@ public:
|
|||
OneServiceImpl(const char *hp,unsigned int port) :
|
||||
_homePath((hp) ? hp : ".")
|
||||
,_tcpFallbackResolver(ZT_TCP_FALLBACK_RELAY)
|
||||
#ifdef ZT_ENABLE_NETWORK_CONTROLLER
|
||||
,_controller((SqliteNetworkController *)0)
|
||||
#endif
|
||||
,_controller((EmbeddedNetworkController *)0)
|
||||
,_phy(this,false,true)
|
||||
,_node((Node *)0)
|
||||
,_controlPlane((ControlPlane *)0)
|
||||
|
@ -673,9 +665,7 @@ public:
|
|||
#ifdef ZT_USE_MINIUPNPC
|
||||
delete _portMapper;
|
||||
#endif
|
||||
#ifdef ZT_ENABLE_NETWORK_CONTROLLER
|
||||
delete _controller;
|
||||
#endif
|
||||
#ifdef ZT_ENABLE_CLUSTER
|
||||
delete _clusterDefinition;
|
||||
#endif
|
||||
|
@ -794,10 +784,8 @@ public:
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef ZT_ENABLE_NETWORK_CONTROLLER
|
||||
_controller = new SqliteNetworkController(_node,(_homePath + ZT_PATH_SEPARATOR_S + ZT_CONTROLLER_DB_PATH).c_str(),(_homePath + ZT_PATH_SEPARATOR_S + "circuitTestResults.d").c_str());
|
||||
_controller = new EmbeddedNetworkController(_node,(_homePath + ZT_PATH_SEPARATOR_S + ZT_CONTROLLER_DB_PATH).c_str());
|
||||
_node->setNetconfMaster((void *)_controller);
|
||||
#endif
|
||||
|
||||
#ifdef ZT_ENABLE_CLUSTER
|
||||
if (OSUtils::fileExists((_homePath + ZT_PATH_SEPARATOR_S + "cluster").c_str())) {
|
||||
|
@ -850,10 +838,7 @@ public:
|
|||
|
||||
_controlPlane = new ControlPlane(this,_node,(_homePath + ZT_PATH_SEPARATOR_S + "ui").c_str());
|
||||
_controlPlane->addAuthToken(authToken.c_str());
|
||||
|
||||
#ifdef ZT_ENABLE_NETWORK_CONTROLLER
|
||||
_controlPlane->setController(_controller);
|
||||
#endif
|
||||
|
||||
{ // Remember networks from previous session
|
||||
std::vector<std::string> networksDotD(OSUtils::listDirectory((_homePath + ZT_PATH_SEPARATOR_S + "networks.d").c_str()));
|
||||
|
|
|
@ -25,18 +25,6 @@ namespace ZeroTier {
|
|||
|
||||
/**
|
||||
* Local service for ZeroTier One as system VPN/NFV provider
|
||||
*
|
||||
* If built with ZT_ENABLE_NETWORK_CONTROLLER defined, this includes and
|
||||
* runs controller/SqliteNetworkController with a database called
|
||||
* controller.db in the specified home directory.
|
||||
*
|
||||
* If built with ZT_AUTO_UPDATE, an official ZeroTier update URL is
|
||||
* periodically checked and updates are automatically downloaded, verified
|
||||
* against a built-in list of update signing keys, and installed. This is
|
||||
* only supported for certain platforms.
|
||||
*
|
||||
* If built with ZT_ENABLE_CLUSTER, a 'cluster' file is checked and if
|
||||
* present is read to determine the identity of other cluster members.
|
||||
*/
|
||||
class OneService
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue