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 6b454dd5c1aea1934dc0bf204bba64c38ff9bc7d..48a5e082256ffafdf0cec0505b33b5660116a549 100644 --- a/router/java/src/net/i2p/router/transport/udp/PeerTestManager.java +++ b/router/java/src/net/i2p/router/transport/udp/PeerTestManager.java @@ -584,6 +584,13 @@ class PeerTestManager { _log.warn("Too many active tests, droppping from Alice " + Addresses.toString(fromIP, fromPort)); return; } + if (_transport.getPeerState(from) == null) { + // Require an existing session to start a test, + // as a way of preventing trouble + if (_log.shouldLog(Log.WARN)) + _log.warn("No session, dropping new test from Alice " + Addresses.toString(fromIP, fromPort)); + return; + } if (_log.shouldLog(Log.DEBUG)) _log.debug("test IP/port are blank coming from " + from + ", assuming we are Bob and they are alice"); receiveFromAliceAsBob(from, testInfo, nonce, null);