summaryrefslogtreecommitdiff
path: root/controller
diff options
context:
space:
mode:
authorGrant Limberg <grant.limberg@zerotier.com>2018-09-28 10:56:40 -0700
committerGrant Limberg <grant.limberg@zerotier.com>2018-09-28 10:56:40 -0700
commitc1ea1329c1fec8f632711711113e4dcf37ea21da (patch)
treed4a05942d957e3539cfa5150844157208c6f516d /controller
parent417aa9547b4f3abb9009a3dbb66ecf93d3d686f7 (diff)
parent60d5a3c631d2185aaba7ce6da3ce96b37fbd0290 (diff)
downloadinfinitytier-c1ea1329c1fec8f632711711113e4dcf37ea21da.tar.gz
infinitytier-c1ea1329c1fec8f632711711113e4dcf37ea21da.zip
Merge branch 'dev' into libpq
Diffstat (limited to 'controller')
-rw-r--r--controller/EmbeddedNetworkController.cpp1
-rw-r--r--controller/FileDB.cpp14
2 files changed, 14 insertions, 1 deletions
diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp
index e0cea53d..27d7658a 100644
--- a/controller/EmbeddedNetworkController.cpp
+++ b/controller/EmbeddedNetworkController.cpp
@@ -1043,6 +1043,7 @@ unsigned int EmbeddedNetworkController::handleControlPlaneHttpDELETE(
json network,member;
_db->get(nwid,network,address,member);
+ _db->eraseMember(nwid, address);
{
std::lock_guard<std::mutex> l(_memberStatus_l);
diff --git a/controller/FileDB.cpp b/controller/FileDB.cpp
index 8cbd60ce..3f5d46bd 100644
--- a/controller/FileDB.cpp
+++ b/controller/FileDB.cpp
@@ -136,12 +136,24 @@ void FileDB::eraseNetwork(const uint64_t networkId)
get(networkId,network);
char p[16384];
OSUtils::ztsnprintf(p,sizeof(p),"%s" ZT_PATH_SEPARATOR_S "%.16llx.json",_networksPath.c_str(),networkId);
- OSUtils::rm(p);
+
+ if (OSUtils::fileExists(p,false)){
+ OSUtils::rm(p);
+ }
_networkChanged(network,nullJson,true);
}
void FileDB::eraseMember(const uint64_t networkId,const uint64_t memberId)
{
+ nlohmann::json network,member,nullJson;
+ get(networkId,network);
+ get(memberId,member);
+ char p[16384];
+ OSUtils::ztsnprintf(p,sizeof(p),"%s" ZT_PATH_SEPARATOR_S "%.16llx" ZT_PATH_SEPARATOR_S "member" ZT_PATH_SEPARATOR_S "%.10llx.json",_networksPath.c_str(),networkId,memberId);
+ if (OSUtils::fileExists(p,false)){
+ OSUtils::rm(p);
+ }
+ _memberChanged(member,nullJson,true);
}
void FileDB::nodeIsOnline(const uint64_t networkId,const uint64_t memberId,const InetAddress &physicalAddress)