forked from I2P_Developers/i2p.i2p
2004-11-01 jrandom
* Increase the tunnel test timeout rapidly if our tunnels are failing. * Honor message expirations for some tunnel jobs that were prematurely expired. * Streamline memory usage with temporary object caches and more efficient serialization for SHA256 calculation, logging, and both I2CP and I2NP message handling. * Fix some situations where we forward messages too eagerly. For a request at the tunnel endpoint, if the tunnel is inbound and the target is remote, honor the message by tunnel routing the data rather than sending it directly to the requested location.
This commit is contained in:
@ -134,6 +134,29 @@ public class ConnectionPacketHandler {
|
||||
con.getOptions().setWindowSize(newWindowSize);
|
||||
con.setCongestionWindowEnd(newWindowSize + lowest);
|
||||
}
|
||||
} else {
|
||||
// received a message that doesn't contain a new ack
|
||||
|
||||
// ehh. cant do this, as we SACK and the acks may be
|
||||
// received out of order:
|
||||
// Alice: RECEIVE 2
|
||||
// Alice: SEND ack 2 nack 1
|
||||
// Alice: RECEIVE 1
|
||||
// Alice: SEND ack 2
|
||||
// Bob: RECEIVE ack 2
|
||||
// Bob: RECEIVE ack 2 nack 1 <-- NOT bad
|
||||
|
||||
/*
|
||||
if (con.getUnackedPacketsSent() > 0) {
|
||||
// peer got a dup
|
||||
int oldSize = con.getOptions().getWindowSize();
|
||||
oldSize >>>= 1;
|
||||
if (oldSize <= 0)
|
||||
oldSize = 1;
|
||||
con.getOptions().setWindowSize(oldSize);
|
||||
return false;
|
||||
}
|
||||
*/
|
||||
}
|
||||
}
|
||||
return false;
|
||||
|
Reference in New Issue
Block a user