forked from I2P_Developers/i2p.i2p
* UDP: Mark only first fragment as a duplicate
This commit is contained in:
@@ -103,14 +103,18 @@ class InboundMessageFragments /*implements UDPTransport.PartialACKSource */{
|
|||||||
Long messageId = Long.valueOf(mid);
|
Long messageId = Long.valueOf(mid);
|
||||||
|
|
||||||
if (_recentlyCompletedMessages.isKnown(mid)) {
|
if (_recentlyCompletedMessages.isKnown(mid)) {
|
||||||
_context.statManager().addRateData("udp.ignoreRecentDuplicate", 1, 0);
|
// Only update stats for the first fragment,
|
||||||
from.messageFullyReceived(messageId, -1);
|
// otherwise it wildly overstates things
|
||||||
_ackSender.ackPeer(from);
|
if (data.readMessageFragmentNum(i) == 0) {
|
||||||
if (_log.shouldLog(Log.INFO))
|
_context.statManager().addRateData("udp.ignoreRecentDuplicate", 1);
|
||||||
_log.info("Message received is a dup: " + mid + " dups: "
|
from.messageFullyReceived(messageId, -1);
|
||||||
+ _recentlyCompletedMessages.getCurrentDuplicateCount() + " out of "
|
_ackSender.ackPeer(from);
|
||||||
+ _recentlyCompletedMessages.getInsertedCount());
|
if (_log.shouldLog(Log.INFO))
|
||||||
_context.messageHistory().droppedInboundMessage(mid, from.getRemotePeer(), "dup");
|
_log.info("Message received is a dup: " + mid + " dups: "
|
||||||
|
+ _recentlyCompletedMessages.getCurrentDuplicateCount() + " out of "
|
||||||
|
+ _recentlyCompletedMessages.getInsertedCount());
|
||||||
|
_context.messageHistory().droppedInboundMessage(mid, from.getRemotePeer(), "dup");
|
||||||
|
}
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user