diff --git a/router/java/src/net/i2p/router/transport/BandwidthLimitedOutputStream.java b/router/java/src/net/i2p/router/transport/BandwidthLimitedOutputStream.java index 8b9bb96e6..9a210eaea 100644 --- a/router/java/src/net/i2p/router/transport/BandwidthLimitedOutputStream.java +++ b/router/java/src/net/i2p/router/transport/BandwidthLimitedOutputStream.java @@ -14,20 +14,25 @@ import java.io.OutputStream; import net.i2p.data.RouterIdentity; import net.i2p.router.RouterContext; +import net.i2p.util.Log; public class BandwidthLimitedOutputStream extends FilterOutputStream { private RouterIdentity _peer; private RouterContext _context; + private Log _log; public BandwidthLimitedOutputStream(RouterContext context, OutputStream source, RouterIdentity peer) { super(source); _context = context; _peer = peer; + _log = context.logManager().getLog(BandwidthLimitedOutputStream.class); } - private final static int CHUNK_SIZE = 64; + private final static int CHUNK_SIZE = 1024; public void write(int val) throws IOException { + if (_log.shouldLog(Log.DEBUG)) + _log.debug("Writing a single byte!", new Exception("Single byte from...")); _context.bandwidthLimiter().delayOutbound(_peer, 1); out.write(val); } @@ -43,6 +48,8 @@ public class BandwidthLimitedOutputStream extends FilterOutputStream { } } public void write(byte src[], int off, int len) throws IOException { + if (_log.shouldLog(Log.DEBUG)) + _log.debug("Writing " + len + " bytes"); if (src == null) return; if (len <= 0) return; if (len <= CHUNK_SIZE) { @@ -52,8 +59,8 @@ public class BandwidthLimitedOutputStream extends FilterOutputStream { int i = 0; while (i+CHUNK_SIZE < len) { _context.bandwidthLimiter().delayOutbound(_peer, CHUNK_SIZE); - out.write(src, off+i*CHUNK_SIZE, CHUNK_SIZE); - i++; + out.write(src, off+i, CHUNK_SIZE); + i += CHUNK_SIZE; } int remainder = len % CHUNK_SIZE; if (remainder != 0) {