diff --git a/history.txt b/history.txt index 4c195dd23..01c600a9c 100644 --- a/history.txt +++ b/history.txt @@ -1,5 +1,10 @@ +2021-03-27 zzz + * Router: Fix decryption of blinded leasesets + 2021-03-25 zzz + * i2ptunnel: Force non-SSL socket to local target for SSL ports * SSU: Implement IPv6 introductions (proposal 158) + * Transports: Don't open UPnP ports for disabled IPv4/v6 2021-03-23 zzz * NetDB: Sort published addresses for consistency diff --git a/router/java/src/net/i2p/router/NetworkDatabaseFacade.java b/router/java/src/net/i2p/router/NetworkDatabaseFacade.java index 591971f35..a7ad944d7 100644 --- a/router/java/src/net/i2p/router/NetworkDatabaseFacade.java +++ b/router/java/src/net/i2p/router/NetworkDatabaseFacade.java @@ -207,4 +207,11 @@ public abstract class NetworkDatabaseFacade implements Service { public boolean removeBlindData(SigningPublicKey spk) { return false; } + + /** + * Notify the netDB that the routing key changed at midnight UTC + * + * @since 0.9.50 + */ + public void routingKeyChanged() {} } diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index f40f9f7a0..837dbdd0f 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 = "Git"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 9; + public final static long BUILD = 10; /** for example "-test" */ public final static String EXTRA = ""; diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java index ef745a190..66f47742a 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java @@ -498,6 +498,7 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad * For console ConfigKeyringHelper * @since 0.9.41 */ + @Override public List getBlindData() { return _blindCache.getData(); } @@ -508,9 +509,22 @@ public abstract class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacad * @return true if removed * @since 0.9.41 */ + @Override public boolean removeBlindData(SigningPublicKey spk) { return _blindCache.removeBlindData(spk); } + + /** + * Notify the netDB that the routing key changed at midnight UTC + * + * @since 0.9.50 + */ + @Override + public void routingKeyChanged() { + _blindCache.rollover(); + if (_log.shouldInfo()) + _log.info("UTC rollover, blind cache updated"); + } /** * @return RouterInfo, LeaseSet, or null, validated diff --git a/router/java/src/net/i2p/router/tasks/UpdateRoutingKeyModifierJob.java b/router/java/src/net/i2p/router/tasks/UpdateRoutingKeyModifierJob.java index 5b367620b..4cf60b0c4 100644 --- a/router/java/src/net/i2p/router/tasks/UpdateRoutingKeyModifierJob.java +++ b/router/java/src/net/i2p/router/tasks/UpdateRoutingKeyModifierJob.java @@ -36,8 +36,10 @@ public class UpdateRoutingKeyModifierJob extends JobImpl { RouterKeyGenerator gen = getContext().routerKeyGenerator(); // make sure we requeue quickly if just before midnight long delay = Math.max(5, Math.min(MAX_DELAY_FAILSAFE, gen.getTimeTillMidnight())); - // TODO tell netdb if mod data changed? - gen.generateDateBasedModData(); + // tell netdb if mod data changed + boolean changed = gen.generateDateBasedModData(); + if (changed) + getContext().netDb().routingKeyChanged(); requeue(delay); } }