From 29c827c07660fbe9d02d5ab2327cdeaeb7107a59 Mon Sep 17 00:00:00 2001
From: zzz <zzz@i2pmail.org>
Date: Thu, 9 Jun 2022 11:54:52 -0400
Subject: [PATCH] SSU2: Ignore dup session confirmed

---
 .../router/transport/udp/OutboundEstablishState2.java    | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/router/java/src/net/i2p/router/transport/udp/OutboundEstablishState2.java b/router/java/src/net/i2p/router/transport/udp/OutboundEstablishState2.java
index 5fd567c537..b659d6c7e1 100644
--- a/router/java/src/net/i2p/router/transport/udp/OutboundEstablishState2.java
+++ b/router/java/src/net/i2p/router/transport/udp/OutboundEstablishState2.java
@@ -357,12 +357,15 @@ class OutboundEstablishState2 extends OutboundEstablishState implements SSU2Payl
     }
 
     public synchronized void receiveSessionCreated(UDPPacket packet) throws GeneralSecurityException {
-        ////// todo fix state check
-        if (_currentState == OutboundState.OB_STATE_VALIDATION_FAILED) {
+        if (_currentState != OutboundState.OB_STATE_REQUEST_SENT &&
+            _currentState != OutboundState.OB_STATE_REQUEST_SENT_NEW_TOKEN) {
+            // ignore dups
             if (_log.shouldLog(Log.WARN))
-                _log.warn("Session created already failed");
+                _log.warn("Invalid state for session created: " + this);
             return;
         }
+        if (_log.shouldDebug())
+            _log.debug("Received a session created on " + this);
 
         DatagramPacket pkt = packet.getPacket();
         SocketAddress from = pkt.getSocketAddress();
-- 
GitLab