From cf7efcada8eb6b92294800afe239cb9a8038e968 Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Sun, 17 Apr 2022 09:45:40 -0400 Subject: [PATCH] I2CP: Soft restart fixes part 3 Remove low-level I2CP reconnector as it may result in duplicate destinations after higher-level (i2ptunnel) or application-layer reconnections Root cause identified by BiglyBT Gitlab issue #350 --- .../client/impl/DisconnectMessageHandler.java | 20 ++----------------- 1 file changed, 2 insertions(+), 18 deletions(-) diff --git a/core/java/src/net/i2p/client/impl/DisconnectMessageHandler.java b/core/java/src/net/i2p/client/impl/DisconnectMessageHandler.java index 7716dbb39e..525916e490 100644 --- a/core/java/src/net/i2p/client/impl/DisconnectMessageHandler.java +++ b/core/java/src/net/i2p/client/impl/DisconnectMessageHandler.java @@ -32,23 +32,7 @@ class DisconnectMessageHandler extends HandlerImpl { String reason = ((DisconnectMessage)message).getReason(); session.propogateError(reason, new I2PSessionException("Disconnect Message received: " + reason)); session.destroySession(false); - if (reason.contains("restart")) { - Thread t = new I2PAppThread(new Reconnector(session), "Reconnect " + session, true); - t.start(); - } - } - - /** @since 0.8.8 */ - private static class Reconnector implements Runnable { - private final I2PSessionImpl _session; - - public Reconnector(I2PSessionImpl session) { - _session = session; - } - - public void run() { - try { Thread.sleep(40*1000); } catch (InterruptedException ie) {} - _session.reconnect(); - } + // Higher layers (only) must do the reconnect, to prevent dup destinations + //if (reason.contains("restart")) ... } } -- GitLab