From 746dc6f884d25016aaaf9653ab4a7ecd7555c6f3 Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 18 Nov 2009 14:20:43 +0000 Subject: [PATCH] - Adjust criteria for following DSRM --- .../router/networkdb/kademlia/SingleLookupJob.java | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/SingleLookupJob.java b/router/java/src/net/i2p/router/networkdb/kademlia/SingleLookupJob.java index 24c0350f9..0cd2bb6a0 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/SingleLookupJob.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/SingleLookupJob.java @@ -1,6 +1,7 @@ package net.i2p.router.networkdb.kademlia; import net.i2p.data.Hash; +import net.i2p.data.RouterInfo; import net.i2p.data.i2np.DatabaseSearchReplyMessage; import net.i2p.router.JobImpl; import net.i2p.router.RouterContext; @@ -10,7 +11,7 @@ import net.i2p.util.Log; * Ask the peer who sent us the DSRM for the RouterInfos. * * If we have the routerInfo already, try to refetch it from that router itself, - * if we aren't already connected to that router, + * (if the info is old or we don't think it is floodfill) * which will help us establish that router as a good floodfill and speed our * integration into the network. * @@ -32,9 +33,13 @@ class SingleLookupJob extends JobImpl { Hash peer = _dsrm.getReply(i); if (peer.equals(getContext().routerHash())) // us continue; - if (getContext().netDb().lookupRouterInfoLocally(peer) == null) + if (peer.equals(from)) // wtf + continue; + RouterInfo ri = getContext().netDb().lookupRouterInfoLocally(peer); + if (ri == null) getContext().jobQueue().addJob(new SingleSearchJob(getContext(), peer, from)); - else if (!getContext().commSystem().isEstablished(peer)) + else if (ri.getPublished() < getContext().clock().now() - 60*60*1000 || + !FloodfillNetworkDatabaseFacade.isFloodfill(ri)) getContext().jobQueue().addJob(new SingleSearchJob(getContext(), peer, peer)); } }