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 8c40d117b9842b434f6c1de677c1ec2aa6710f36..24c0350f92361ca0d4678dab76024132178cc125 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/SingleLookupJob.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/SingleLookupJob.java @@ -8,6 +8,12 @@ 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, + * which will help us establish that router as a good floodfill and speed our + * integration into the network. + * * A simple version of SearchReplyJob in SearchJob.java. * Skip the profile updates - this should be rare. * @@ -28,6 +34,8 @@ class SingleLookupJob extends JobImpl { continue; if (getContext().netDb().lookupRouterInfoLocally(peer) == null) getContext().jobQueue().addJob(new SingleSearchJob(getContext(), peer, from)); + else if (!getContext().commSystem().isEstablished(peer)) + getContext().jobQueue().addJob(new SingleSearchJob(getContext(), peer, peer)); } } public String getName() { return "NetDb process DSRM"; }