forked from I2P_Developers/i2p.i2p
* Tunnels: Extend local expiration of IB tunnels, to allow for
more clock skew and not drop valid messages at their destination
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
2012-07-30 zzz
|
||||||
|
* i2psnark: Increase max piece size to 4 MB (ticket #993)
|
||||||
|
* Tunnels: Extend local expiration of IB tunnels, to allow for
|
||||||
|
more clock skew and not drop valid messages at their destination
|
||||||
|
|
||||||
2012-07-29 zzz
|
2012-07-29 zzz
|
||||||
* Signatures:
|
* Signatures:
|
||||||
- Prep for new signature algorithms; new SigType enum;
|
- Prep for new signature algorithms; new SigType enum;
|
||||||
|
@@ -18,7 +18,7 @@ public class RouterVersion {
|
|||||||
/** deprecated */
|
/** deprecated */
|
||||||
public final static String ID = "Monotone";
|
public final static String ID = "Monotone";
|
||||||
public final static String VERSION = CoreVersion.VERSION;
|
public final static String VERSION = CoreVersion.VERSION;
|
||||||
public final static long BUILD = 15;
|
public final static long BUILD = 16;
|
||||||
|
|
||||||
/** for example "-test" */
|
/** for example "-test" */
|
||||||
public final static String EXTRA = "";
|
public final static String EXTRA = "";
|
||||||
|
@@ -29,11 +29,15 @@ class ExpireJob extends JobImpl {
|
|||||||
// others may be sending to the published lease expirations
|
// others may be sending to the published lease expirations
|
||||||
// Also skew the inbound away from the outbound
|
// Also skew the inbound away from the outbound
|
||||||
long expire = cfg.getExpiration();
|
long expire = cfg.getExpiration();
|
||||||
_dropAfter = expire + Router.CLOCK_FUDGE_FACTOR;
|
if (_pool.getSettings().isInbound()) {
|
||||||
if (_pool.getSettings().isInbound())
|
// wait extra long for IB so we don't drop msgs that
|
||||||
|
// got all the way to us.
|
||||||
|
_dropAfter = expire + (2 * Router.CLOCK_FUDGE_FACTOR);
|
||||||
expire -= IB_EARLY_EXPIRE + ctx.random().nextLong(IB_EARLY_EXPIRE);
|
expire -= IB_EARLY_EXPIRE + ctx.random().nextLong(IB_EARLY_EXPIRE);
|
||||||
else
|
} else {
|
||||||
|
_dropAfter = expire + Router.CLOCK_FUDGE_FACTOR;
|
||||||
expire -= OB_EARLY_EXPIRE + ctx.random().nextLong(OB_EARLY_EXPIRE);
|
expire -= OB_EARLY_EXPIRE + ctx.random().nextLong(OB_EARLY_EXPIRE);
|
||||||
|
}
|
||||||
// See comments in TunnelPool.locked_buildNewLeaseSet
|
// See comments in TunnelPool.locked_buildNewLeaseSet
|
||||||
cfg.setExpiration(expire);
|
cfg.setExpiration(expire);
|
||||||
getTiming().setStartAfter(expire);
|
getTiming().setStartAfter(expire);
|
||||||
@@ -45,6 +49,7 @@ class ExpireJob extends JobImpl {
|
|||||||
|
|
||||||
public void runJob() {
|
public void runJob() {
|
||||||
if (!_leaseUpdated) {
|
if (!_leaseUpdated) {
|
||||||
|
// First run
|
||||||
_pool.removeTunnel(_cfg);
|
_pool.removeTunnel(_cfg);
|
||||||
_leaseUpdated = true;
|
_leaseUpdated = true;
|
||||||
// noop for outbound
|
// noop for outbound
|
||||||
@@ -52,6 +57,7 @@ class ExpireJob extends JobImpl {
|
|||||||
long timeToDrop = _dropAfter - getContext().clock().now();
|
long timeToDrop = _dropAfter - getContext().clock().now();
|
||||||
requeue(timeToDrop);
|
requeue(timeToDrop);
|
||||||
} else {
|
} else {
|
||||||
|
// Second run
|
||||||
// already removed/refreshed, but now lets make it
|
// already removed/refreshed, but now lets make it
|
||||||
// so we dont even honor the tunnel anymore
|
// so we dont even honor the tunnel anymore
|
||||||
getContext().tunnelDispatcher().remove(_cfg);
|
getContext().tunnelDispatcher().remove(_cfg);
|
||||||
|
Reference in New Issue
Block a user