diff options
-rw-r--r-- | main.cpp | 12 | ||||
-rw-r--r-- | node/Defaults.cpp | 11 | ||||
-rw-r--r-- | node/PacketDecoder.cpp | 5 |
3 files changed, 17 insertions, 11 deletions
@@ -487,8 +487,10 @@ int main(int argc,char **argv) case Node::NODE_RESTART_FOR_UPGRADE: { #ifdef __UNIX_LIKE__ const char *upgPath = node->reasonForTermination(); - if (upgPath) - execl(upgPath,upgPath,"-s",(char *)0); // -s = (re)start after install/upgrade + if (upgPath) { + Utils::rm((std::string(homeDir)+"/zerotier-one.pid").c_str()); + execl(upgPath,upgPath,(char *)0); + } exitCode = 2; fprintf(stderr,"%s: abnormal termination: unable to execute update at %s\n",argv[0],(upgPath) ? upgPath : "(unknown path)"); #endif @@ -506,11 +508,7 @@ int main(int argc,char **argv) } catch ( ... ) {} #ifdef __UNIX_LIKE__ - { - char pidpath[4096]; - Utils::snprintf(pidpath,sizeof(pidpath),"%s/zerotier-one.pid",homeDir); - Utils::rm(pidpath); - } + Utils::rm((std::string(homeDir)+"/zerotier-one.pid").c_str()); #endif return exitCode; diff --git a/node/Defaults.cpp b/node/Defaults.cpp index 2588c85f..41ff540b 100644 --- a/node/Defaults.cpp +++ b/node/Defaults.cpp @@ -126,16 +126,19 @@ static inline const char *_mkUpdateUrl() { #if defined(__LINUX__) && ( defined(__i386__) || defined(__x86_64) || defined(__x86_64__) || defined(__amd64) || defined(__i386) ) if (sizeof(void *) == 8) - return "http://download.zerotier.com/update/linux/x64/latest.nfo"; - else return "http://download.zerotier.com/update/linux/x86/latest.nfo"; + return "http://download.zerotier.com/ZeroTierOneInstaller-linux-x64-LATEST.nfo"; + else return "http://download.zerotier.com/ZeroTierOneInstaller-linux-x86-LATEST.nfo"; #define GOT_UPDATE_URL #endif #ifdef __APPLE__ - // TODO: iOS? - return "http://download.zerotier.com/update/mac/combined/latest.nfo"; +#ifdef TARGET_OS_IPHONE + // TODO +#else + return "http://download.zerotier.com/ZeroTierOneInstaller-mac-combined-LATEST.nfo"; #define GOT_UPDATE_URL #endif +#endif // TODO: Windows diff --git a/node/PacketDecoder.cpp b/node/PacketDecoder.cpp index cf1b5ff5..b8bdc8de 100644 --- a/node/PacketDecoder.cpp +++ b/node/PacketDecoder.cpp @@ -253,6 +253,11 @@ bool PacketDecoder::_doHELLO(const RuntimeEnvironment *_r) peer->onReceive(_r,_localPort,_remoteAddress,hops(),packetId(),Packet::VERB_HELLO,0,Packet::VERB_NOP,Utils::now()); peer->setRemoteVersion(vMajor,vMinor,vRevision); + // If a supernode has a version higher than ours, this causes a software + // update check to run now. + if ((_r->updater)&&(_r->topology->isSupernode(peer->address()))) + _r->updater->sawRemoteVersion(vMajor,vMinor,vRevision); + Packet outp(source(),_r->identity.address(),Packet::VERB_OK); outp.append((unsigned char)Packet::VERB_HELLO); outp.append(packetId()); |