From 0ad18cd0ba98789e48106bad4b879d922e8b38f4 Mon Sep 17 00:00:00 2001
From: jrandom <jrandom>
Date: Fri, 4 Nov 2005 03:08:00 +0000
Subject: [PATCH] 2005-10-31  jrandom     * Fix for some syndie reply scenarios
 (thanks identiguy and CofE!)     * Removed a potentially infinitely recursive
 call (oops) (forgot to commit this file before.  oops)

---
 router/java/src/net/i2p/router/Router.java | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/router/java/src/net/i2p/router/Router.java b/router/java/src/net/i2p/router/Router.java
index 7fe3cc0b57..02afd4e68d 100644
--- a/router/java/src/net/i2p/router/Router.java
+++ b/router/java/src/net/i2p/router/Router.java
@@ -41,6 +41,7 @@ import net.i2p.stat.Rate;
 import net.i2p.stat.RateStat;
 import net.i2p.util.FileUtil;
 import net.i2p.util.I2PThread;
+import net.i2p.util.SimpleTimer;
 import net.i2p.util.Log;
 
 /**
@@ -326,14 +327,20 @@ public class Router {
             }
             ri.sign(key);
             setRouterInfo(ri);
+            SimpleTimer.getInstance().addEvent(new Republish(), 0);
+        } catch (DataFormatException dfe) {
+            _log.log(Log.CRIT, "Internal error - unable to sign our own address?!", dfe);
+        }
+    }
+    
+    private class Republish implements SimpleTimer.TimedEvent {
+        public void timeReached() {
             try {
-                _context.netDb().publish(ri);
+                _context.netDb().publish(getRouterInfo());
             } catch (IllegalArgumentException iae) {
                 _log.log(Log.CRIT, "Local router info is invalid?  rebuilding a new identity", iae);
                 rebuildNewIdentity();
             }
-        } catch (DataFormatException dfe) {
-            _log.log(Log.CRIT, "Internal error - unable to sign our own address?!", dfe);
         }
     }
     
-- 
GitLab