From 9e20ba7090e5a5bd0d6d414c8fe3617cd97bf4ba Mon Sep 17 00:00:00 2001 From: eyedeekay Date: Tue, 26 Mar 2024 12:40:45 -0400 Subject: [PATCH] NetDB: refactor determination of router connection establishment --- .../kademlia/HandleFloodfillDatabaseStoreMessageJob.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java index cd6eb2b4f..7758c0fb8 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/HandleFloodfillDatabaseStoreMessageJob.java @@ -481,7 +481,6 @@ class HandleFloodfillDatabaseStoreMessageJob extends JobImpl { msg.setMessageId(_message.getReplyToken()); // Randomize for a little protection against clock-skew fingerprinting. // But the "arrival" isn't used for anything, right? - // TODO just set to 0? // TODO we have no session to garlic wrap this with, needs new message msg.setArrival(getContext().clock().now() - getContext().random().nextInt(3*1000)); // may be null @@ -536,7 +535,12 @@ class HandleFloodfillDatabaseStoreMessageJob extends JobImpl { } return; } - boolean isEstab = getContext().commSystem().isEstablished(toPeer); + DatabaseEntry entry = _message.getEntry(); + int type = entry.getType(); + // only send direct for RI replies or non-tunnel + boolean isEstab = (type == DatabaseEntry.KEY_TYPE_ROUTERINFO || replyTunnel == null) && + getContext().commSystem().isEstablished(toPeer); +/* if (!isEstab && replyTunnel != null) { DatabaseEntry entry = _message.getEntry(); int type = entry.getType(); @@ -589,6 +593,7 @@ class HandleFloodfillDatabaseStoreMessageJob extends JobImpl { } } } +*/ if (isEstab && !_facade.isClientDb()) { I2NPMessage out1 = msg; I2NPMessage out2 = msg2;