diff --git a/history.txt b/history.txt index fb18ce907..a244ca4c1 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,9 @@ +2020-12-20 zzz + * SSU: Westwood+ congestion control (ticket #2427) + +2020-12-18 zzz + * Crypto: Fix use after free (ticket #2797) + 2020-12-17 zzz * SSU: Send subset of fragments (ticket #2427) diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 4e28a2c8d..c10128fe6 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,7 +18,7 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 5; + public final static long BUILD = 6; /** for example "-test" */ public final static String EXTRA = ""; diff --git a/router/java/src/net/i2p/router/transport/udp/OutboundMessageFragments.java b/router/java/src/net/i2p/router/transport/udp/OutboundMessageFragments.java index cfce2f6fc..5eff2780c 100644 --- a/router/java/src/net/i2p/router/transport/udp/OutboundMessageFragments.java +++ b/router/java/src/net/i2p/router/transport/udp/OutboundMessageFragments.java @@ -104,8 +104,8 @@ class OutboundMessageFragments { } void dropPeer(PeerState peer) { - if (_log.shouldLog(Log.INFO)) - _log.info("Dropping peer " + peer.getRemotePeer()); + if (_log.shouldDebug()) + _log.debug("Dropping peer " + peer.getRemotePeer()); peer.dropOutbound(); _activePeers.remove(peer); } @@ -434,8 +434,8 @@ class OutboundMessageFragments { OutboundMessageState state = next.state; OutNetMessage msg = state.getMessage(); int msgType = (msg != null) ? msg.getMessageTypeId() : -1; - if (_log.shouldLog(Log.INFO)) - _log.info("Building packet for " + next + " to " + peer); + if (_log.shouldDebug()) + _log.debug("Building packet for " + next + " to " + peer); int curTotalDataSize = state.fragmentSize(next.num); // now stuff in more fragments if they fit if (i +1 < toSend.size()) { @@ -461,14 +461,13 @@ class OutboundMessageFragments { int before = remaining.size(); UDPPacket pkt = _builder.buildPacket(sendNext, peer, remaining, newFullAckCount, partialACKBitfields); if (pkt != null) { - if (_log.shouldLog(Log.INFO)) - _log.info("Built packet with " + sendNext.size() + " fragments totalling " + curTotalDataSize + + if (_log.shouldDebug()) + _log.debug("Built packet with " + sendNext.size() + " fragments totalling " + curTotalDataSize + " data bytes to " + peer); _context.statManager().addRateData("udp.sendFragmentsPerPacket", sendNext.size()); - } - if (pkt == null) { + } else { if (_log.shouldLog(Log.WARN)) - _log.info("Build packet FAIL for " + DataHelper.toString(sendNext) + " to " + peer); + _log.warn("Build packet FAIL for " + DataHelper.toString(sendNext) + " to " + peer); sendNext.clear(); continue; } @@ -503,8 +502,8 @@ class OutboundMessageFragments { int sent = rv.size(); peer.packetsTransmitted(sent); - if (_log.shouldLog(Log.INFO)) - _log.info("Sent " + fragmentsToSend + " fragments of " + states.size() + + if (_log.shouldDebug()) + _log.debug("Sent " + fragmentsToSend + " fragments of " + states.size() + " messages in " + sent + " packets to " + peer); return rv; diff --git a/router/java/src/net/i2p/router/transport/udp/UDPPacketReader.java b/router/java/src/net/i2p/router/transport/udp/UDPPacketReader.java index e0476a70a..2337d0a48 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPPacketReader.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPPacketReader.java @@ -652,9 +652,8 @@ class UDPPacketReader { buf.append(" with ACKs for: ["); int numFrags = fragmentCount(); for (int i = 0; i < numFrags; i++) { - if (!received(i)) - buf.append('!'); - buf.append(i).append(' '); + if (received(i)) + buf.append(i).append(' '); } buf.append("] / ").append(numFrags); return buf.toString();