java.lang.Object
net.i2p.router.JobImpl
net.i2p.router.networkdb.kademlia.SingleLookupJob
All Implemented Interfaces:
Job

class SingleLookupJobextends JobImpl
Performs targeted followup lookups for RouterInfo entries from search replies.

Processes RouterInfo hashes received in DatabaseSearchReplyMessage by initiating direct queries to obtain missing or stale RouterInfo data. For each unknown peer, queries the peer that provided the hash; for known peers with outdated data or non-floodfill status, queries the peer directly to refresh the information.

This lightweight version of SearchReplyJob focuses specifically on RouterInfo acquisition without profile management overhead. Designed for efficient network integration and floodfill peer discovery.

Limits concurrent followup operations based on system performance to prevent resource exhaustion during high-volume search responses.

  • Field Details

    • _dsrm

      private final DatabaseSearchReplyMessage _dsrm
      The search reply being processed.
    • MAX_TO_FOLLOW

      public static final int MAX_TO_FOLLOW
      I2NP spec allows 255, max actually sent (in ../HDLMJ) is 3, so just to prevent trouble, we don't want to queue 255 jobs at once.
  • Constructor Details

    • SingleLookupJob

      public SingleLookupJob(RouterContext ctx, DatabaseSearchReplyMessage dsrm)
      Stores the reply whose router hashes this job will look up.
      Parameters:
      ctx - the router context
      dsrm - the search reply naming the router hashes to follow up on
  • Method Details

    • runJob

      public void runJob()
      Kick off single searches for the peers referenced in the reply.
    • getName

      public String getName()
      Name of this job.
      Returns:
      the name this job is listed under in the job queue