From e0dd1f13e31fe4c9ad7ad77e4e593da750afb783 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Thu, 27 Aug 2009 15:29:23 +0000
Subject: [PATCH] keep publishing leaseset if we are restarting, to minimize
 downtime

---
 .../kademlia/KademliaNetworkDatabaseFacade.java          | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
index aafd45e7e0..6ff84f68ce 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
@@ -490,8 +490,13 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
         }
         if (!_context.clientManager().shouldPublishLeaseSet(h))
             return;
-        if (_context.router().gracefulShutdownInProgress())
-            return;
+        // If we're exiting, don't publish.
+        // If we're restarting, keep publishing to minimize the downtime.
+        if (_context.router().gracefulShutdownInProgress()) {
+            int code = _context.router().scheduledGracefulExitCode();
+            if (code == Router.EXIT_GRACEFUL || code == Router.EXIT_HARD)
+                return;
+        }
         
         RepublishLeaseSetJob j = null;
         synchronized (_publishingLeaseSets) {
-- 
GitLab