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 81c976b98a595c01b2edba3efd471d2e1dd1000d..5cc606b037fa70b944aef7b9e1b2650d22d7fb7c 100644 --- a/router/java/src/net/i2p/router/transport/udp/OutboundMessageFragments.java +++ b/router/java/src/net/i2p/router/transport/udp/OutboundMessageFragments.java @@ -457,6 +457,8 @@ class OutboundMessageFragments { if (_log.shouldDebug()) _log.debug("Building packet for " + next + " to " + peer); int curTotalDataSize = state.fragmentSize(next.num); + if (next.num > 0 && peer.getVersion() > 1) + curTotalDataSize += SSU2Util.DATA_FOLLOWON_EXTRA_SIZE; // now stuff in more fragments if they fit if (i +1 < toSend.size()) { int maxAvail; @@ -469,6 +471,8 @@ class OutboundMessageFragments { for (int j = i + 1; j < toSend.size(); j++) { next = toSend.get(j); int nextDataSize = next.state.fragmentSize(next.num); + if (next.num > 0 && peer.getVersion() > 1) + nextDataSize += SSU2Util.DATA_FOLLOWON_EXTRA_SIZE; //if (PacketBuilder.canFitAnotherFragment(peer, sendNext.size(), curTotalDataSize, nextDataSize)) { //if (_builder.canFitAnotherFragment(peer, sendNext.size(), curTotalDataSize, nextDataSize)) { if (nextDataSize <= maxAvail) {