summaryrefslogtreecommitdiff
path: root/node/Network.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'node/Network.cpp')
-rw-r--r--node/Network.cpp37
1 files changed, 15 insertions, 22 deletions
diff --git a/node/Network.cpp b/node/Network.cpp
index 0e67471b..8cf022a9 100644
--- a/node/Network.cpp
+++ b/node/Network.cpp
@@ -100,15 +100,28 @@ Network::Network(const RuntimeEnvironment *renv,uint64_t nwid) :
Network::~Network()
{
+ char n[128];
if (_destroyed) {
- char n[128];
Utils::snprintf(n,sizeof(n),"networks.d/%.16llx.conf",_id);
RR->node->dataStoreDelete(n);
Utils::snprintf(n,sizeof(n),"networks.d/%.16llx.mcerts",_id);
RR->node->dataStoreDelete(n);
} else {
clean();
- _dumpMembershipCerts();
+
+ std::string buf("ZTMCD0");
+ Utils::snprintf(n,sizeof(n),"networks.d/%.16llx.mcerts",_id);
+ Mutex::Lock _l(_lock);
+
+ if ((!_config)||(_config.isPublic())||(_membershipCertificates.size() == 0)) {
+ RR->node->dataStoreDelete(n);
+ return;
+ }
+
+ for(std::map<Address,CertificateOfMembership>::iterator c(_membershipCertificates.begin());c!=_membershipCertificates.end();++c)
+ c->second.serialize2(buf);
+
+ RR->node->dataStorePut(n,buf,true);
}
}
@@ -420,24 +433,4 @@ void Network::destroy()
_tap = (EthernetTap *)0;
}
-void Network::_dumpMembershipCerts()
-{
- char n[128];
- std::string buf("ZTMCD0");
-
- Utils::snprintf(n,sizeof(n),"networks.d/%.16llx.mcerts",_id);
-
- Mutex::Lock _l(_lock);
-
- if ((!_config)||(_config.isPublic())||(_membershipCertificates.size() == 0)) {
- RR->node->dataStoreDelete(n);
- return;
- }
-
- for(std::map<Address,CertificateOfMembership>::iterator c(_membershipCertificates.begin());c!=_membershipCertificates.end();++c)
- c->second.serialize2(buf);
-
- RR->node->dataStorePut(n,buf,true);
-}
-
} // namespace ZeroTier