From 30a666c833a689745976df01e14bafbcf0a5f187 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Fri, 27 Sep 2013 01:50:38 +0000 Subject: [PATCH] Streaming: Don't queue a message for an unknown connection on the SYN queue if it has a send ID set, it must be for a recently closed connection --- .../java/src/net/i2p/client/streaming/PacketHandler.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/streaming/java/src/net/i2p/client/streaming/PacketHandler.java b/apps/streaming/java/src/net/i2p/client/streaming/PacketHandler.java index ed10b6e2ab..e528abe2c7 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/PacketHandler.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/PacketHandler.java @@ -105,8 +105,8 @@ class PacketHandler { displayPacket(packet, "RECV", "wsize " + con.getOptions().getWindowSize() + " rto " + con.getOptions().getRTO()); receiveKnownCon(con, packet); } else { - receiveUnknownCon(packet, sendId, queueIfNoConn); displayPacket(packet, "UNKN", null); + receiveUnknownCon(packet, sendId, queueIfNoConn); } // Don't log here, wait until we have the conn to make the dumps easier to follow //((PacketLocal)packet).logTCPDump(true); @@ -285,6 +285,13 @@ class PacketHandler { return; } } + } else { + // if it has a send ID, it's almost certainly for a recently removed connection. + if (_log.shouldLog(Log.WARN)) + _log.warn("Dropping pkt w/ send ID but no con found, recently disconnected? " + packet); + // don't bother sending reset + packet.releasePayload(); + return; } if (packet.isFlagSet(Packet.FLAG_SYNCHRONIZE)) { -- GitLab