mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-02-21 02:01:22 +00:00
it compiles again!
This commit is contained in:
parent
73dd9d3b74
commit
e22fae2397
@ -226,4 +226,25 @@ void NodeControlService::_doCommand(IpcConnection *ipcc,const char *commandLine)
|
||||
ipcc->printf("."ZT_EOL_S); // blank line ends response
|
||||
}
|
||||
|
||||
std::string NodeControlService::readOrCreateAuthtoken(const char *path,bool generateIfNotFound)
|
||||
{
|
||||
unsigned char randbuf[24];
|
||||
std::string token;
|
||||
|
||||
if (Utils::readFile(path,token))
|
||||
return token;
|
||||
else token = "";
|
||||
|
||||
if (generateIfNotFound) {
|
||||
Utils::getSecureRandom(randbuf,sizeof(randbuf));
|
||||
for(unsigned int i=0;i<sizeof(randbuf);++i)
|
||||
token.push_back(("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789")[(unsigned int)randbuf[i] % 62]);
|
||||
if (!Utils::writeFile(path,token))
|
||||
return std::string();
|
||||
Utils::lockDownFile(path,false);
|
||||
}
|
||||
|
||||
return token;
|
||||
}
|
||||
|
||||
} // namespace ZeroTier
|
||||
|
@ -69,6 +69,15 @@ public:
|
||||
void threadMain()
|
||||
throw();
|
||||
|
||||
/**
|
||||
* Load (or generate) the authentication token
|
||||
*
|
||||
* @param path Full path to authtoken.secret
|
||||
* @param generateIfNotFound If true, generate and save if not found or readable
|
||||
* @return Authentication token or empty string on failure
|
||||
*/
|
||||
static std::string readOrCreateAuthtoken(const char *path,bool generateIfNotFound);
|
||||
|
||||
private:
|
||||
static void _CBcommandHandler(void *arg,IpcConnection *ipcc,IpcConnection::EventType event,const char *commandLine);
|
||||
void _doCommand(IpcConnection *ipcc,const char *commandLine);
|
||||
|
9
main.cpp
9
main.cpp
@ -72,6 +72,9 @@
|
||||
#include "node/EthernetTapFactory.hpp"
|
||||
#include "node/RoutingTable.hpp"
|
||||
|
||||
#include "control/NodeControlClient.hpp"
|
||||
#include "control/NodeControlService.hpp"
|
||||
|
||||
#ifdef __WINDOWS__
|
||||
#include "osnet/WindowsEthernetTapFactory.hpp"
|
||||
#include "osnet/WindowsRoutingTable.hpp"
|
||||
@ -152,7 +155,7 @@ static int main(const char *homeDir,int argc,char **argv)
|
||||
|
||||
try {
|
||||
volatile bool done = false;
|
||||
Node::NodeControlClient client(homeDir,&_CBresultHandler,(void *)&done);
|
||||
NodeControlClient client(homeDir,&_CBresultHandler,(void *)&done);
|
||||
const char *err = client.error();
|
||||
if (err) {
|
||||
fprintf(stderr,"%s: fatal error: unable to connect (is ZeroTier One running?) (%s)"ZT_EOL_S,argv[0],err);
|
||||
@ -778,7 +781,7 @@ int main(int argc,char **argv)
|
||||
} break;
|
||||
#else // __UNIX_LIKE__
|
||||
case Node::NODE_RESTART_FOR_UPGRADE: {
|
||||
const char *upgPath = node->reasonForTermination();
|
||||
const char *upgPath = node->terminationMessage();
|
||||
// On Unix-type OSes we exec() right into the upgrade. This in turn will
|
||||
// end with us being re-launched either via the upgrade itself or something
|
||||
// like OSX's launchd.
|
||||
@ -797,7 +800,7 @@ int main(int argc,char **argv)
|
||||
|
||||
case Node::NODE_UNRECOVERABLE_ERROR: {
|
||||
exitCode = 3;
|
||||
const char *termReason = node->reasonForTermination();
|
||||
const char *termReason = node->terminationMessage();
|
||||
fprintf(stderr,"%s: abnormal termination: %s\n",argv[0],(termReason) ? termReason : "(unknown reason)");
|
||||
} break;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user