From 84dbf53f95db44d178505d35d988fbb214ba0793 Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 8 May 2024 09:43:52 -0400 Subject: [PATCH] Tunnels: Validate peer RI expiration in TunnelPeerSelector Previously, the expiration was not validated until BuildRequestor, where the build would fail. Old bug, but was exacerbated by recent change to KNDF.validate() to enforce expiration at startup if the downtime was short. --- .../src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java index 02fd7a40d..2d03b2a2e 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java +++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPeerSelector.java @@ -229,7 +229,10 @@ public abstract class TunnelPeerSelector extends ConnectChecker { if (ctx.commSystem().wasUnreachable(h)) return true; - RouterInfo info = (RouterInfo) ctx.netDb().lookupLocallyWithoutValidation(h); + // Here, we use validation, because BuildRequestor does, + // so if we don't skip old routers here, it gets all the way to BuildRequestor + // before failing. + RouterInfo info = (RouterInfo) ctx.netDb().lookupLocally(h); if (info == null) return true;