diff --git a/ext/installfiles/windows/ZeroTier One.aip b/ext/installfiles/windows/ZeroTier One.aip index 3cb3a8acd..68988ddc6 100644 --- a/ext/installfiles/windows/ZeroTier One.aip +++ b/ext/installfiles/windows/ZeroTier One.aip @@ -1,15 +1,19 @@ - + + + + + @@ -48,6 +52,8 @@ + + @@ -63,7 +69,7 @@ - + @@ -82,7 +88,7 @@ - + @@ -117,6 +123,7 @@ + @@ -127,10 +134,10 @@ - - + + @@ -140,6 +147,8 @@ + + @@ -149,8 +158,6 @@ - - @@ -165,13 +172,16 @@ + + + @@ -197,10 +207,10 @@ - + - - + + @@ -211,8 +221,10 @@ - - + + + + @@ -227,11 +239,30 @@ + + + + + + + + + + + + + + + + + + + diff --git a/main.cpp b/main.cpp index 497b29aef..e131f0fb0 100644 --- a/main.cpp +++ b/main.cpp @@ -599,7 +599,7 @@ int main(int argc,char **argv) #else pathToInf = ZT_DEFAULTS.defaultHomePath + "\\tap-windows\\x86\\zttap200.inf"; #endif - printf("Installing ZeroTier One virtual Ethernet port driver. You may be"ZT_EOL_S"prompted to authorize driver installation."ZT_EOL_S""ZT_EOL_S); + printf("Installing ZeroTier One virtual Ethernet port driver."ZT_EOL_S""ZT_EOL_S"NOTE: If you don't see a confirmation window to allow driver installation,"ZT_EOL_S"check to make sure it didn't appear under the installer."ZT_EOL_S); BOOL needReboot = FALSE; if (DiInstallDriverA(NULL,pathToInf.c_str(),DIIRFLAG_FORCE_INF,&needReboot)) { printf("%s: driver successfully installed from %s"ZT_EOL_S,argv[0],pathToInf.c_str()); diff --git a/node/SoftwareUpdater.cpp b/node/SoftwareUpdater.cpp index cb54185f6..7cb0d4792 100644 --- a/node/SoftwareUpdater.cpp +++ b/node/SoftwareUpdater.cpp @@ -139,7 +139,7 @@ void SoftwareUpdater::_cbHandleGetLatestVersionInfo(void *arg,int code,const std } if (code != 200) { - LOG("software update check failed: server responded %d (%s)",code,body.c_str()); + LOG("software update check failed: server responded with code %d",code); upd->_status = UPDATE_STATUS_IDLE; return; } @@ -152,19 +152,20 @@ void SoftwareUpdater::_cbHandleGetLatestVersionInfo(void *arg,int code,const std const char *err = parseNfo(body.c_str(),vMajor,vMinor,vRevision,signedBy,signature,url); if (err) { - LOG("software update aborted: .nfo file error: %s",err); + LOG("software update check aborted: .nfo file parse error: %s",err); upd->_status = UPDATE_STATUS_IDLE; return; } + if (!ZT_DEFAULTS.updateAuthorities.count(signedBy)) { - LOG("software update aborted: .nfo file specifies unknown signing authority"); + LOG("software update check aborted: .nfo file specifies unknown signing authority"); upd->_status = UPDATE_STATUS_IDLE; return; } #ifndef ZT_ALWAYS_UPDATE /* for testing */ if (packVersion(vMajor,vMinor,vRevision) <= upd->_myVersion) { - LOG("software update aborted: .nfo file invalid: version on web site <= my version"); + LOG("software update check complete: version on update site is not newer than my version, no update necessary"); upd->_status = UPDATE_STATUS_IDLE; return; } @@ -188,14 +189,14 @@ void SoftwareUpdater::_cbHandleGetLatestVersionBinary(void *arg,int code,const s Mutex::Lock _l(upd->_lock); if (!validateUpdate(body.data(),(unsigned int)body.length(),upd->_signedBy,upd->_signature)) { - LOG("software update aborted: update fetched from '%s' failed signature check (got %u bytes)",url.c_str(),(unsigned int)body.length()); + LOG("software update failed: update fetched from '%s' failed signature check (image size: %u)",url.c_str(),(unsigned int)body.length()); upd->_status = UPDATE_STATUS_IDLE; return; } size_t lastSlash = url.rfind('/'); if (lastSlash == std::string::npos) { // sanity check, shouldn't happen - LOG("software update aborted: invalid URL"); + LOG("software update failed: invalid URL"); upd->_status = UPDATE_STATUS_IDLE; return; } @@ -209,12 +210,12 @@ void SoftwareUpdater::_cbHandleGetLatestVersionBinary(void *arg,int code,const s FILE *upf = fopen(updatePath.c_str(),"wb"); if (!upf) { - LOG("software update aborted: unable to open %s for writing",updatePath.c_str()); + LOG("software update failed: unable to open %s for writing",updatePath.c_str()); upd->_status = UPDATE_STATUS_IDLE; return; } if (fwrite(body.data(),body.length(),1,upf) != 1) { - LOG("software update aborted: unable to write to %s",updatePath.c_str()); + LOG("software update failed: unable to write to %s",updatePath.c_str()); upd->_status = UPDATE_STATUS_IDLE; fclose(upf); Utils::rm(updatePath);