Make sure identity.public exists and stays in sync, cleanup extra new in Node, and test script for local testnets.
This commit is contained in:
parent
918fc8884b
commit
9a34fde8a5
4 changed files with 49 additions and 14 deletions
|
@ -59,7 +59,8 @@ Node::Node(
|
|||
ZT1_VirtualNetworkConfigFunction virtualNetworkConfigFunction,
|
||||
ZT1_EventCallback eventCallback,
|
||||
const char *overrideRootTopology) :
|
||||
RR(new RuntimeEnvironment(this)),
|
||||
_RR(this),
|
||||
RR(&_RR),
|
||||
_uPtr(uptr),
|
||||
_dataStoreGetFunction(dataStoreGetFunction),
|
||||
_dataStorePutFunction(dataStorePutFunction),
|
||||
|
@ -86,19 +87,18 @@ Node::Node(
|
|||
TRACE("identity.secret not found, generating...");
|
||||
RR->identity.generate();
|
||||
idtmp = RR->identity.toString(true);
|
||||
if (!dataStorePut("identity.secret",idtmp,true)) {
|
||||
delete RR;
|
||||
if (!dataStorePut("identity.secret",idtmp,true))
|
||||
throw std::runtime_error("unable to write identity.secret");
|
||||
}
|
||||
idtmp = RR->identity.toString(false);
|
||||
if (!dataStorePut("identity.public",idtmp,false)) {
|
||||
delete RR;
|
||||
throw std::runtime_error("unable to write identity.public");
|
||||
}
|
||||
}
|
||||
RR->publicIdentityStr = RR->identity.toString(false);
|
||||
RR->secretIdentityStr = RR->identity.toString(true);
|
||||
|
||||
idtmp = dataStoreGet("identity.public");
|
||||
if (idtmp != RR->publicIdentityStr) {
|
||||
if (!dataStorePut("identity.public",RR->publicIdentityStr,false))
|
||||
throw std::runtime_error("unable to write identity.public");
|
||||
}
|
||||
|
||||
try {
|
||||
RR->prng = new CMWC4096();
|
||||
RR->sw = new Switch(RR);
|
||||
|
@ -113,7 +113,6 @@ Node::Node(
|
|||
delete RR->mc;
|
||||
delete RR->sw;
|
||||
delete RR->prng;
|
||||
delete RR;
|
||||
throw;
|
||||
}
|
||||
|
||||
|
@ -138,14 +137,13 @@ Node::Node(
|
|||
Node::~Node()
|
||||
{
|
||||
Mutex::Lock _l(_networks_m);
|
||||
_networks.clear(); // delete these before we delete RR
|
||||
_networks.clear();
|
||||
delete RR->sa;
|
||||
delete RR->topology;
|
||||
delete RR->antiRec;
|
||||
delete RR->mc;
|
||||
delete RR->sw;
|
||||
delete RR->prng;
|
||||
delete RR;
|
||||
}
|
||||
|
||||
ZT1_ResultCode Node::processWirePacket(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue