From d0f635e30cb2b9236e82c4fd7fb3485ba615af37 Mon Sep 17 00:00:00 2001 From: zab2 <zab2@mail.i2p> Date: Sun, 13 Oct 2013 17:05:59 +0000 Subject: [PATCH] ticket #1062 - count duplicate packets towards RTT if we have never sampled it --- .../java/src/net/i2p/client/streaming/ConnectionOptions.java | 4 ++++ .../src/net/i2p/client/streaming/ConnectionPacketHandler.java | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java index a556c95ffd..b14b4a223c 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionOptions.java @@ -629,6 +629,10 @@ class ConnectionOptions extends I2PSocketOptionsImpl { computeRTO(); } + public synchronized boolean receivedAck() { + return _initState != AckInit.INIT; + } + /** How long after sending a packet will we wait before resending? * @return delay for a retransmission in ms */ diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java index 2ac2ba96e5..74aa4da5df 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionPacketHandler.java @@ -299,6 +299,7 @@ class ConnectionPacketHandler { return false; boolean lastPacketAcked = false; + final boolean receivedAck = con.getOptions().receivedAck(); if ( (acked != null) && (!acked.isEmpty()) ) { if (_log.shouldLog(Log.DEBUG)) _log.debug(acked.size() + " of our packets acked with " + packet); @@ -312,7 +313,7 @@ class ConnectionPacketHandler { final int numSends = p.getNumSends(); final int ackTime = p.getAckTime(); - if (numSends > 1) + if (numSends > 1 && receivedAck) numResends++; else if (ackTime > highestRTT) highestRTT = ackTime; -- GitLab