diff --git a/history.txt b/history.txt index 575f4e7edc..67e6bafbc7 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,22 @@ +2021-01-20 zzz + * Console: Fix link to UPnP status + * SSU: Fix deadlock with router restart + +2021-01-14 zzz + * Router: + - Change default encryption type to ECIES-X25519 (proposal 156) + - Move Sybil subsystem from console to router + - Limit max addresses in RI + +2021-01-13 zzz + * Jetty: Fix URI in request logs + +2021-01-12 zzz + * i2psnark: Don't decrement downloaded counter after receiving bad piece + +2021-01-11 zzz + * Console: Delete rrd files for no-longer-configured stats at startup + 2021-01-08 zzz * i2ptunnel: Disable shared clients (DSA) (part 2) * SSU: Fix bandwidth estimator deadlock (ticket #2798) diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 7f4edb9752..31c35f8c3e 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 = 13; + public final static long BUILD = 14; /** for example "-test" */ public final static String EXTRA = ""; diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java index d9147829c4..b8e849e63c 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java @@ -2455,7 +2455,7 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority // warning, this calls back into us with allowRebuildRouterInfo = false, // via CSFI.createAddresses->TM.getAddresses()->updateAddress()->REA if (allowRebuildRouterInfo) - _context.router().rebuildRouterInfo(); + rebuildRouterInfo(); } else { addr = null; } @@ -2510,11 +2510,35 @@ public class UDPTransport extends TransportImpl implements TimedWeightedPriority // warning, this calls back into us with allowRebuildRouterInfo = false, // via CSFI.createAddresses->TM.getAddresses()->updateAddress()->REA if (allowRebuildRouterInfo) - _context.router().rebuildRouterInfo(); + rebuildRouterInfo(); } } } + /** + * Avoid deadlocks part 999 + * @since 0.9.49 + */ + private void rebuildRouterInfo() { + (new RebuildEvent()).schedule(0); + } + + /** + * @since 0.9.49 + */ + private class RebuildEvent extends SimpleTimer2.TimedEvent { + /** + * Caller must schedule + */ + public RebuildEvent() { + super(_context.simpleTimer2()); + } + public void timeReached() { + _context.router().rebuildRouterInfo(true); + } + } + + /** * Simple fetch of stored IP and port, since * we don't put them in the real, published RouterAddress anymore