From 6ede06cfdfdb66031f9cf148b48c5be1eb0ac3c4 Mon Sep 17 00:00:00 2001 From: zzz Date: Fri, 8 Jul 2022 11:09:58 -0400 Subject: [PATCH] SSU2: Send termination before dropping session after failure to get Session Confirmed ack --- router/java/src/net/i2p/router/transport/udp/PeerState2.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/router/java/src/net/i2p/router/transport/udp/PeerState2.java b/router/java/src/net/i2p/router/transport/udp/PeerState2.java index 0645e16ca..0f2a292ae 100644 --- a/router/java/src/net/i2p/router/transport/udp/PeerState2.java +++ b/router/java/src/net/i2p/router/transport/udp/PeerState2.java @@ -221,6 +221,8 @@ public class PeerState2 extends PeerState implements SSU2Payload.PayloadCallback if (_sessConfSentCount >= MAX_SESS_CONF_RETX) { if (_log.shouldWarn()) _log.warn("Fail, no Sess Conf ACK rcvd on " + this); + UDPPacket pkt = _transport.getBuilder2().buildSessionDestroyPacket(SSU2Util.REASON_FRAME_TIMEOUT, this); + _transport.send(pkt); _transport.dropPeer(this, false, "No Sess Conf ACK rcvd"); _sessConfForReTX = null; return null;