X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Finit.cpp;h=9655f2a290905a74871dd54389425685d15e4ab7;hb=9de5ff869fb469db2d821f4ecfda44657259ec26;hp=1eb28a5f6fb458388b0d2ec49eef679e44742d85;hpb=a95e546089f82078037d9b78145e0d78fa6c4b12;p=novacoin.git diff --git a/src/init.cpp b/src/init.cpp index 1eb28a5..9655f2a 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -8,6 +8,7 @@ #include "net.h" #include "init.h" #include "util.h" +#include "ntp.h" #include "ui_interface.h" #include "checkpoints.h" #include @@ -995,6 +996,33 @@ bool AppInit2() if (fServer) NewThread(ThreadRPCServer, NULL); + // ********************************************************* Step 12: NTP synchronization + + // First, do a simple check whether there is a local ntp server. + string strLocalHost = "127.0.0.1"; + int64_t nTime = NtpGetTime(strLocalHost); + + if (nTime < 0 || nTime != GetTime()) { + // If not, then request current timestamp from three random NTP servers. + uiInterface.InitMessage(_("Synchronizing time through NTP...")); + printf("Synchronizing time through NTP...\n"); + + for(int i = 0; i < 2; i++) { + CNetAddr ip; + int64_t nTime = NtpGetTime(ip); + + if (nTime > 0 && nTime != 2085978496) { // Skip the deliberately wrong timestamps + AddTimeData(ip, nTime); + printf("AddTimeData(%s, %" PRId64 ")\n", ip.ToString().c_str(), nTime); + } + } + + // When done, start a periodical sampling thread + NewThread(ThreadNtpSamples, NULL); + + uiInterface.InitMessage(_("Done")); + printf("Done\n"); + } // ********************************************************* Step 12: finished uiInterface.InitMessage(_("Done loading"));