From f1c50b7fc33efd533305ceda458bf1a20902fa37 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sun, 24 Jan 2010 02:14:39 +0000
Subject: [PATCH]     * Clock:       - Don't let a client update the router
 clock       - Restore and enhance vanished clock error log message

---
 core/java/src/net/i2p/client/SetDateMessageHandler.java | 8 ++++++--
 core/java/src/net/i2p/time/Timestamper.java             | 9 +++++++--
 2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/core/java/src/net/i2p/client/SetDateMessageHandler.java b/core/java/src/net/i2p/client/SetDateMessageHandler.java
index 5e3dfab6bd..e828e975c6 100644
--- a/core/java/src/net/i2p/client/SetDateMessageHandler.java
+++ b/core/java/src/net/i2p/client/SetDateMessageHandler.java
@@ -27,7 +27,11 @@ class SetDateMessageHandler extends HandlerImpl {
     public void handleMessage(I2CPMessage message, I2PSessionImpl session) {
         _log.debug("Handle message " + message);
         SetDateMessage msg = (SetDateMessage) message;
-        Clock.getInstance().setNow(msg.getDate().getTime());
+        // Only do this if we are NOT in the router context;
+        // otherwise, it sets getUpdatedSuccessfully() in Clock when all
+        // we did was get the time from ourselves.
+        if (!_context.isRouterContext())
+            Clock.getInstance().setNow(msg.getDate().getTime());
         session.dateUpdated();
     }
-}
\ No newline at end of file
+}
diff --git a/core/java/src/net/i2p/time/Timestamper.java b/core/java/src/net/i2p/time/Timestamper.java
index b1d763a3a7..660e3c7ac8 100644
--- a/core/java/src/net/i2p/time/Timestamper.java
+++ b/core/java/src/net/i2p/time/Timestamper.java
@@ -155,8 +155,13 @@ public class Timestamper implements Runnable {
                         try {
                             lastFailed = !queryTime(_servers.toArray(new String[_servers.size()]));
                         } catch (IllegalArgumentException iae) {
-                            if ( (!lastFailed) && (_log.shouldLog(Log.ERROR)) )
-                                _log.error("Unable to reach any of the NTP servers - network disconnected?");
+                            if ( (!_initialized) && (_log.shouldLog(Log.ERROR)) ) {
+                                List<String> all = new ArrayList();
+                                if (_priorityServers != null)
+                                    all.addAll(_priorityServers);
+                                all.addAll(_servers);
+                                _log.error("Unable to reach any of the NTP servers " + all + " - network disconnected? Or set time.sntpServerList=myserver1.com,myserver2.com in advanced configuration.");
+                            }
                             lastFailed = true;
                         }
                     }
-- 
GitLab