diff --git a/apps/streaming/java/src/net/i2p/client/streaming/Connection.java b/apps/streaming/java/src/net/i2p/client/streaming/Connection.java index a47d361a668e0e0495eaaebfec4f1578614d8606..9435727c4a3afccdabeb0ba78dfab704f0a3a7e5 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/Connection.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/Connection.java @@ -1105,7 +1105,8 @@ public class Connection { if (choke > 0) _packet.setFlag(Packet.FLAG_DELAY_REQUESTED); _packet.setOptionalMaxSize(getOptions().getMaxMessageSize()); - _packet.setResendDelay(getOptions().getResendDelay()); + // bugfix release 0.7.8, we weren't dividing by 1000 + _packet.setResendDelay(getOptions().getResendDelay() / 1000); if (_packet.getReceiveStreamId() <= 0) _packet.setReceiveStreamId(_receiveStreamId); if (_packet.getSendStreamId() <= 0) diff --git a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionDataReceiver.java b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionDataReceiver.java index 281203d914b2687f5be60ca6221c35b3501c3520..3b55160d3ddd86f45c8fafcb418673a52f7a0059 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/ConnectionDataReceiver.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/ConnectionDataReceiver.java @@ -170,7 +170,8 @@ class ConnectionDataReceiver implements MessageOutputStream.DataReceiver { packet.setOptionalDelay(choke); if (choke > 0) packet.setFlag(Packet.FLAG_DELAY_REQUESTED); - packet.setResendDelay(con.getOptions().getResendDelay()); + // bugfix release 0.7.8, we weren't dividing by 1000 + packet.setResendDelay(con.getOptions().getResendDelay() / 1000); if (con.getOptions().getProfile() == ConnectionOptions.PROFILE_INTERACTIVE) packet.setFlag(Packet.FLAG_PROFILE_INTERACTIVE, true); diff --git a/apps/streaming/java/src/net/i2p/client/streaming/Packet.java b/apps/streaming/java/src/net/i2p/client/streaming/Packet.java index 2a6ae59ad1b4dcf6dc2224b94a450f5b7290a270..85981d9e62bbda806a4e80b1464cb03cd9b1f85a 100644 --- a/apps/streaming/java/src/net/i2p/client/streaming/Packet.java +++ b/apps/streaming/java/src/net/i2p/client/streaming/Packet.java @@ -216,9 +216,21 @@ public class Packet { * resending this packet (if it hasn't yet been ACKed). The * value is seconds since the packet was created. * + * Unused. + * Broken before release 0.7.8 + * Not to be used without sanitizing for huge values. + * Setters from options did not divide by 1000, and the options default + * is 1000, so the value sent in the 1-byte field was always + * 1000 & 0xff = 0xe8 = 232 + * * @return Delay before resending a packet in seconds. */ public int getResendDelay() { return _resendDelay; } + /** + * Unused. + * Broken before release 0.7.8 + * See above + */ public void setResendDelay(int numSeconds) { _resendDelay = numSeconds; } public static final int MAX_PAYLOAD_SIZE = 32*1024;