More than one samples seems enough.
[novacoin.git] / src / ntp.cpp
index e8d0e4a..84f3301 100644 (file)
@@ -348,7 +348,7 @@ int64_t DoReq(SOCKET sockfd, socklen_t servlen, struct sockaddr cliaddr) {
     int len=48;
     int retcode = sendto(sockfd, (char *) msg, len, 0, &cliaddr, servlen);
     if (retcode < 0) {
-        printf("sendto() failed: %d", retcode);
+        printf("sendto() failed: %d\n", retcode);
         return -3;
     }
 
@@ -359,7 +359,7 @@ int64_t DoReq(SOCKET sockfd, socklen_t servlen, struct sockaddr cliaddr) {
 
     retcode = select(sockfd + 1, &fdset, NULL, NULL, &timeout);
     if (retcode <= 0) {
-        printf("recvfrom() error");
+        printf("recvfrom() error\n");
         return -4;
     }
 
@@ -449,6 +449,7 @@ void ThreadNtpSamples(void* parg) {
 
             if (abs64(nClockOffset) < nMaxOffset) {
                 // Everything seems right, remember new trusted offset.
+                printf("ThreadNtpSamples: new offset sample from %s, offset=%" PRId64 ".\n", strTrustedUpstream.c_str(), nClockOffset);
                 nNtpOffset = nClockOffset;
             }
             else {
@@ -472,15 +473,16 @@ void ThreadNtpSamples(void* parg) {
                 int64_t nClockOffset = NtpGetTime(ip) - GetTime();
 
                 if (abs64(nClockOffset) < nMaxOffset) { // Skip the deliberately wrong timestamps
+                    printf("ThreadNtpSamples: new offset sample from %s, offset=%" PRId64 ".\n", ip.ToString().c_str(), nClockOffset);
                     vTimeOffsets.input(nClockOffset);
                 }
             }
 
-            if (vTimeOffsets.size() > 2) {
+            if (vTimeOffsets.size() > 1) {
                 nNtpOffset = vTimeOffsets.median();
             }
             else {
-                // Not enough offsets yet, try again later.
+                // Not enough offsets yet, try to collect additional samples later.
                 nNtpOffset = INT64_MAX;
                 int nSleepMinutes = 1 + GetRandInt(4); // Sleep for 1-5 minutes.
                 for (int i = 0; i < nSleepMinutes * 60 && !fShutdown; i++)