|
|
|
|
@ -85,49 +85,6 @@ public:
|
|
|
|
|
private: |
|
|
|
|
static void _circuitTestCallback(ZT_Node *node,ZT_CircuitTest *test,const ZT_CircuitTestReport *report); |
|
|
|
|
|
|
|
|
|
// Network base path and network JSON path
|
|
|
|
|
/*
|
|
|
|
|
inline std::string _networkBP(const uint64_t nwid,bool create) |
|
|
|
|
{ |
|
|
|
|
char tmp[64]; |
|
|
|
|
std::string p(_path + ZT_PATH_SEPARATOR_S + "network"); |
|
|
|
|
if (create) OSUtils::mkdir(p.c_str()); |
|
|
|
|
p.push_back(ZT_PATH_SEPARATOR); |
|
|
|
|
Utils::snprintf(tmp,sizeof(tmp),"%.16llx",nwid); |
|
|
|
|
p.append(tmp); |
|
|
|
|
if (create) OSUtils::mkdir(p.c_str()); |
|
|
|
|
return p; |
|
|
|
|
} |
|
|
|
|
inline std::string _networkJP(const uint64_t nwid,bool create) |
|
|
|
|
{ |
|
|
|
|
return (_networkBP(nwid,create) + ZT_PATH_SEPARATOR + "config.json"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Member base path and member JSON path
|
|
|
|
|
inline std::string _memberBP(const uint64_t nwid,const Address &member,bool create) |
|
|
|
|
{ |
|
|
|
|
std::string p(_networkBP(nwid,create)); |
|
|
|
|
p.push_back(ZT_PATH_SEPARATOR); |
|
|
|
|
p.append("member"); |
|
|
|
|
if (create) OSUtils::mkdir(p.c_str()); |
|
|
|
|
p.push_back(ZT_PATH_SEPARATOR); |
|
|
|
|
p.append(member.toString()); |
|
|
|
|
if (create) OSUtils::mkdir(p.c_str()); |
|
|
|
|
return p; |
|
|
|
|
} |
|
|
|
|
inline std::string _memberJP(const uint64_t nwid,const Address &member,bool create) |
|
|
|
|
{ |
|
|
|
|
return (_memberBP(nwid,member,create) + ZT_PATH_SEPARATOR + "config.json"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// In-memory cache of network members
|
|
|
|
|
std::map< uint64_t,std::map< Address,nlohmann::json > > _networkMemberCache; |
|
|
|
|
Mutex _networkMemberCache_m; |
|
|
|
|
*/ |
|
|
|
|
|
|
|
|
|
JSONDB _db; |
|
|
|
|
Mutex _db_m; |
|
|
|
|
|
|
|
|
|
// Gathers a bunch of statistics about members of a network, IP assignments, etc. that we need in various places
|
|
|
|
|
// This does lock _networkMemberCache_m
|
|
|
|
|
struct _NetworkMemberInfo |
|
|
|
|
@ -190,11 +147,12 @@ private:
|
|
|
|
|
member["clock"] = now; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// These are const after construction
|
|
|
|
|
JSONDB _db; |
|
|
|
|
Mutex _db_m; |
|
|
|
|
|
|
|
|
|
Node *const _node; |
|
|
|
|
std::string _path; |
|
|
|
|
|
|
|
|
|
// Circuit tests outstanding
|
|
|
|
|
struct _CircuitTestEntry |
|
|
|
|
{ |
|
|
|
|
ZT_CircuitTest *test; |
|
|
|
|
@ -203,7 +161,6 @@ private:
|
|
|
|
|
std::map< uint64_t,_CircuitTestEntry > _circuitTests; |
|
|
|
|
Mutex _circuitTests_m; |
|
|
|
|
|
|
|
|
|
// Last request time by address, for rate limitation
|
|
|
|
|
std::map< std::pair<uint64_t,uint64_t>,uint64_t > _lastRequestTime; |
|
|
|
|
Mutex _lastRequestTime_m; |
|
|
|
|
}; |
|
|
|
|
|