From 55f2d782ce035ba6966c21c1ad2f03a9d6e9843d Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 6 Dec 2022 13:06:37 -0500 Subject: [PATCH] SSU2: Post-termination handler part 7 Kill handlers at shutdown --- history.txt | 3 +++ router/java/src/net/i2p/router/RouterVersion.java | 2 +- .../net/i2p/router/transport/udp/PeerStateDestroyed.java | 8 ++++++++ .../src/net/i2p/router/transport/udp/UDPTransport.java | 3 +++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/history.txt b/history.txt index ad15a2833..fc3271338 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,6 @@ +2022-12-06 zzz + * SSU2: Add handler to process post-termination messages + 2022-12-04 zzz * SSU2: Token improvements and fixes diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 35ab2b80b..9bc4388a0 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Git"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 4; + public final static long BUILD = 5; /** for example "-test" */ public final static String EXTRA = ""; diff --git a/router/java/src/net/i2p/router/transport/udp/PeerStateDestroyed.java b/router/java/src/net/i2p/router/transport/udp/PeerStateDestroyed.java index fbc399efa..49b48fc69 100644 --- a/router/java/src/net/i2p/router/transport/udp/PeerStateDestroyed.java +++ b/router/java/src/net/i2p/router/transport/udp/PeerStateDestroyed.java @@ -86,6 +86,14 @@ class PeerStateDestroyed implements SSU2Payload.PayloadCallback, SSU2Sender { _killTimer.schedule(MAX_LIFETIME); } + /** + * Call at transport shutdown + */ + public void kill() { + _ackTimer.cancel(); + _killTimer.cancel(); + } + /// begin SSU2Sender interface /// public RemoteHostId getRemoteHostId() { return _remoteHostId; } diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java index 16a1d1209..60d1b94ea 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java @@ -875,6 +875,9 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority _peersByConnID.clear(); if (_recentlyClosedConnIDs != null) { synchronized(_addDropLock) { + for (PeerStateDestroyed psd : _recentlyClosedConnIDs.values()) { + psd.kill(); + } _recentlyClosedConnIDs.clear(); } }