net.i2p.router.networkdb.kademlia

## Class SearchReplyJob

- java.lang.Object
- - net.i2p.router.JobImpl
  - - net.i2p.router.networkdb.kademlia.SearchReplyJob

- All Implemented Interfaces:
    Job

      class SearchReplyJob
      extends JobImpl

  Processes DatabaseSearchReplyMessage responses from floodfill peers.

  Validates reply messages and extracts router information for search operations. Implements security measures to prevent exploitation through malformed or malicious search replies, including authentication verification and nonce checking.

  Tracks statistics on good, bad, and duplicate replies to identify potentially unreliable peers and adjust search behavior accordingly.

  Thread-safe implementation with comprehensive logging for debugging and monitoring of peer reliability patterns.

- - ### Field Summary

    - ### Fields inherited from class net.i2p.router.JobImpl

      `_id`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `SearchReplyJob(RouterContext enclosingContext, SearchJob job, DatabaseSearchReplyMessage message, Hash peer, long duration)`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getName()` Descriptive name of the task
    `void` | `runJob()` Actually perform the task.

    - ### Methods inherited from class net.i2p.router.JobImpl

      `dropped, getContext, getJobId, getMadeReadyOn, getTiming, madeReady, requeue, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### SearchReplyJob

          public SearchReplyJob(RouterContext enclosingContext,
                                SearchJob job,
                                DatabaseSearchReplyMessage message,
                                Hash peer,
                                long duration)

  - ### Method Detail

    - #### getName

          public String getName()

      Description copied from interface: `Job`
      Descriptive name of the task
      Returns:
        the descriptive name of the task

    - #### runJob

          public void runJob()

      Description copied from interface: `Job`
      Actually perform the task. This call blocks until the Job is complete.