From 43a5998cfd77a856492091625c69cc3989f76a88 Mon Sep 17 00:00:00 2001 From: zzz <zzz@i2pmail.org> Date: Wed, 8 Jun 2022 11:31:42 -0400 Subject: [PATCH] SSU2: Set timer to remove peer test state Reduce SSU 1/2 max test time as Bob --- .../router/transport/udp/PeerTestManager.java | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/udp/PeerTestManager.java b/router/java/src/net/i2p/router/transport/udp/PeerTestManager.java index 7d1c96eb06..59e487dcd5 100644 --- a/router/java/src/net/i2p/router/transport/udp/PeerTestManager.java +++ b/router/java/src/net/i2p/router/transport/udp/PeerTestManager.java @@ -153,6 +153,8 @@ class PeerTestManager { /** longest we will keep track of a Charlie nonce for */ private static final int MAX_CHARLIE_LIFETIME = 15*1000; + /** longest we will keep track of test as Bob to forward response from Charlie */ + private static final int MAX_BOB_LIFETIME = 10*1000; /** as Bob/Charlie */ private static final int MAX_ACTIVE_TESTS = 20; @@ -1035,6 +1037,7 @@ class PeerTestManager { state.setReceiveAliceTime(now); state.setLastSendTime(now); _activeTests.put(lNonce, state); + _context.simpleTimer2().addEvent(new RemoveTest(lNonce), MAX_BOB_LIFETIME); // send alice RI to charlie if (_log.shouldDebug()) _log.debug("Send Alice RI and msg 2 to charlie on " + state); @@ -1110,6 +1113,7 @@ class PeerTestManager { state.setReceiveBobTime(now); state.setLastSendTime(now); _activeTests.put(lNonce, state); + _context.simpleTimer2().addEvent(new RemoveTest(lNonce), MAX_CHARLIE_LIFETIME); } // generate our signed data // we sign it even if rejecting, not required though @@ -1520,8 +1524,9 @@ class PeerTestManager { _log.debug("Receive from Bob: " + state); if (isNew) { - _activeTests.put(Long.valueOf(nonce), state); - _context.simpleTimer2().addEvent(new RemoveTest(nonce), MAX_CHARLIE_LIFETIME); + Long lnonce = Long.valueOf(nonce); + _activeTests.put(lnonce, state); + _context.simpleTimer2().addEvent(new RemoveTest(lnonce), MAX_CHARLIE_LIFETIME); } state.setLastSendTime(now); @@ -1632,8 +1637,9 @@ class PeerTestManager { } if (isNew) { - _activeTests.put(Long.valueOf(nonce), state); - _context.simpleTimer2().addEvent(new RemoveTest(nonce), MAX_CHARLIE_LIFETIME); + Long lnonce = Long.valueOf(nonce); + _activeTests.put(lnonce, state); + _context.simpleTimer2().addEvent(new RemoveTest(lnonce), MAX_BOB_LIFETIME); } state.setLastSendTime(now); @@ -1745,14 +1751,14 @@ class PeerTestManager { * forget about charlie's nonce after a short while. */ private class RemoveTest implements SimpleTimer.TimedEvent { - private final long _nonce; + private final Long _nonce; - public RemoveTest(long nonce) { + public RemoveTest(Long nonce) { _nonce = nonce; } public void timeReached() { - _activeTests.remove(Long.valueOf(_nonce)); + _activeTests.remove(_nonce); } } -- GitLab