From db0b3da446e719b5b8fa7a508d6c8a9cc16c9918 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Tue, 16 Mar 2010 13:32:34 +0000 Subject: [PATCH] snark up bw tracking tweak --- .../src/org/klomp/snark/PeerConnectionOut.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/apps/i2psnark/java/src/org/klomp/snark/PeerConnectionOut.java b/apps/i2psnark/java/src/org/klomp/snark/PeerConnectionOut.java index a9c7b86372..92ac358a5f 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/PeerConnectionOut.java +++ b/apps/i2psnark/java/src/org/klomp/snark/PeerConnectionOut.java @@ -163,10 +163,22 @@ class PeerConnectionOut implements Runnable removeMessage(Message.PIECE); // XXX - Should also register overhead... - if (m.type == Message.PIECE) - state.uploaded(m.len); + // Don't let other clients requesting big chunks get an advantage + // when we are seeding; + // only count the rest of the upload after sendMessage(). + int remainder = 0; + if (m.type == Message.PIECE) { + if (m.len <= PeerState.PARTSIZE) { + state.uploaded(m.len); + } else { + state.uploaded(PeerState.PARTSIZE); + remainder = m.len - PeerState.PARTSIZE; + } + } m.sendMessage(dout); + if (remainder > 0) + state.uploaded(remainder); m = null; } } -- GitLab