Packages that use JobImpl
Package
Description
The I2P router application handles I2P network communication.
Router-side implementation of the Invisible Internet Client Protocol (I2CP): client sessions over plain or TLS sockets, message delivery, and lease and tunnel management on behalf of clients.
Simplified fake implementations of router interfaces (comm system and friends) for testing and embedded builds.
Garlic message creation, parsing and handling, and the outbound message jobs: one-shot sends, source routing and delivery status handling.
Network database message handling shared by all facades: database lookup jobs and local RouterInfo publication.
The Kademlia distributed hash table (DHT) network database: lookup, store and explore jobs, the data store, the floodfill variants, and lookup throttling.
Peer profiles and capacity calculation, peer test jobs, peer selection for tunnel building, and the database and tunnel history used for peer selection.
The I2P startup package loads configuration when I2P is started.
Offline analysis tools for detecting Sybil attacks and malicious peer coordination by correlating peer relationships.
Periodic maintenance jobs: stats coalescing, cryptographic algorithm checks, liveliness marking, out-of-memory handling, thread dumps, the watchdog, graceful shutdown and soft restart, update installation, republishing and config reloading.
Tunnel messages and the tunnel layer: the
TunnelManagerFacade, tunnel build request and reply processing, and the inbound and outbound tunnel structures. Tunnel pool management: pool lifecycle, peer selection, build scheduling and failure handling for client and exploratory tunnels.
Helpers and handlers for the router console user interface, packaged in routerconsole.war and accessible only from JSP files.
Uses of JobImpl in net.i2p.router
Subclasses of JobImpl in net.i2p.routerModifier and TypeClassDescriptionprivate classPeriodically removes expired bans and offenses.private classBans a peer for a set of its IP addresses.private classPeriodically removes expired blocklist entries.private classReads the blocklist files into memory.private classJob to sequentially dispatch all queued tunnel data messages.private classJob to sequentially dispatch all queued tunnel gateway messages.private classRead/Write the 4 files in keyBackup/ As of 0.9.4 this is run on-demand only, there's no need to periodically sync.private final classJob reopening the history file.private classJob writing the queued entries to the file.Uses of JobImpl in net.i2p.router.client
Subclasses of JobImpl in net.i2p.router.clientModifier and TypeClassDescriptionprivate classSends a message status update to the client.private static classJob delivering a message to a local destination.private classJob handling one message from a client session.(package private) classGiven an established connection, walk through the process of establishing the leaseset.(package private) classLook up the lease of a hash, to convert it to a Destination for the client.private classJob cleaning up when the lookup finishes.(package private) classAsync job to notify the client that a new message is available for them, or just send it directly if specified.(package private) classAsync job to send an abuse message to the client.(package private) classAsync job to walk the client through generating a lease set.private classTimeout check for the LeaseSet request.Uses of JobImpl in net.i2p.router.dummy
Subclasses of JobImpl in net.i2p.router.dummyModifier and TypeClassDescriptionprivate classDelivers a message received from another router.Uses of JobImpl in net.i2p.router.message
Subclasses of JobImpl in net.i2p.router.messageModifier and TypeClassDescriptionclassJob to handle an inbound GarlicMessage received outside of a tunnel.classSend a client message out an outbound tunnel and into an inbound tunnel on the target leaseSet.private classNote: This is run inline byOutboundClientMessageOneShotJob.send(), not on the job queue.private classFor ECIES only.private classWe couldn't even find the leaseSet, so die.private classSend a message to a lease.private classCalled after we get a confirmation that the message was delivered safely.private classFired after the basic timeout for sending through the given tunnel has been reached.classSend a message directly to another router (not through a tunnel).Uses of JobImpl in net.i2p.router.networkdb
Subclasses of JobImpl in net.i2p.router.networkdbModifier and TypeClassDescriptionclassHandle a lookup for a key received from a remote peer.classPublish the local router's RouterInfo periodically.Uses of JobImpl in net.i2p.router.networkdb.kademlia
Subclasses of JobImpl in net.i2p.router.networkdb.kademliaModifier and TypeClassDescription(package private) classLightweight background job that refreshes RouterInfo for peers we recently interacted with.(package private) classAsk a connected peer for his RI.(package private) classOverride to not call failed() inDirectLookupMatchJob.setMessage(I2NPMessage), as it will be called from runJob().(package private) classPeriodically searches through all leases to find expired ones, failing those keys and firing up a new search for each (in case we want it later, might as well preemptively fetch it).(package private) classGo through the routing table pick routers that are out of date, but don't expire routers we're actively connected to.classRepresents an exploratory search job for a particular key in the Kademlia network database.(package private) classSimple job to monitor the floodfill pool.private classRemove a failing peer after a lookup timeout.private classVerify a failing peer after a successful lookup.private static classRecord the store failure in the peer profile.private static classNote in the profile that the store succeeded.(package private) classJob to flood nearby floodfill routers with our RI.(package private) classThis class extends StoreJob to fire off a FloodfillVerifyStoreJob after a successful store.(package private) classTwo-phase floodfill store verification.private classHandles a verification reply.private classHandles a verification reply timeout.(package private) classHandles match processing for flood-only search operations.(package private) classTimeout handler for flood-only search operations.(package private) classFlood-only search implementation for network database lookups.(package private) classBase class for flood-based search operations with fallback to Kademlia.classProcesses database lookup messages received by floodfill routers.(package private) classProcesses and stores DatabaseStoreMessage data in the floodfill network database.(package private) classBackground maintenance job that keeps introducer RouterInfos warm in the local netDb.(package private) classPerforms targeted followup lookups during iterative search operations.(package private) classProcesses DatabaseSearchReplyMessage responses during iterative searches.classTraditional Kademlia iterative search with enhanced robustness.(package private) classHandles timeout events for individual peer lookups in iterative searches.private classJob to process batched LeaseSet republishes.private classJob to asynchronously purge all routers from NetDb matching enabled ban rules.private static classJob to refresh client LeaseSets periodically.private classThis was mostly for manual reseeding, i.e.private classReads a single RouterInfo file from disk and stores it in memory.(package private) classProbes peers to verify they are still alive, usingDirectLookupJobto ask for their RouterInfo.(package private) classRefreshRoutersJob performs router info refresh operations periodically.classPeriodically republishes a local LeaseSet to the network database.private classHandles a publish timeout, retrying with floodfill verification on recurring failures, or cancelling when a newer lease set appeared locally.private classFired on a successful store, resetting the global fail counter and clearing the first-publish gate so later renewals proceed immediately.classBase class for iterative network database search operations.protected classCalled when a particular peer failed to respond before the timeout was reached, or if the peer could not be contacted at all.private classJob that re-invokes searchNext after a delay.(package private) classProcesses DatabaseSearchReplyMessage responses from floodfill peers.(package private) classCalled after a match to a db search is found(package private) classPerforms targeted followup lookups for RouterInfo entries from search replies.(package private) classPerforms a targeted lookup to a single peer for a specific key.(package private) classThis job initiates exploration of the network database by selecting keys to explore and queuing ExploreJobs up to a maximum per run.(package private) classAbstract base class for network database store operations.private classJob to handle failed store attempts.private classJob to verify successful store delivery and trigger next steps.private classA job that waits briefly before continuing to send store messages.Uses of JobImpl in net.i2p.router.peermanager
Subclasses of JobImpl in net.i2p.router.peermanagerModifier and TypeClassDescriptionclassPeriodically tests selected peers to gather real-time performance data and update peer profiles.private classCalled when the peer's response is found.private classCalled when the peer's response times out.Uses of JobImpl in net.i2p.router.startup
Subclasses of JobImpl in net.i2p.router.startupModifier and TypeClassDescription(package private) classThis actually boots almost everything.(package private) classStart up the network database.(package private) classStart up the peer manager.(package private) classFor future restricted routes.classWarning - misnamed.classRun any client applications specified inclients.config.(package private) classRun once or twice at startup byStartupJob, and then runs BootCommSystemJob.(package private) classThis used be called fromStartAcceptingClientsJobbut is now disabled.(package private) classStart the I2CP interface.classThe StartupJob should be run once on router startup to initialize the system and set things in motion.Uses of JobImpl in net.i2p.router.sybil
Subclasses of JobImpl in net.i2p.router.sybilModifier and TypeClassDescriptionclassSybil attack analysis implementation.private classLoad the persisted blocklist and tell the router.Uses of JobImpl in net.i2p.router.tasks
Subclasses of JobImpl in net.i2p.router.tasksModifier and TypeClassDescriptionclassRouter information persistence and synchronization job.classSimply read the router config periodically, so that the user may make config changes externally.classUpdate the routing Key modifier every day at midnight (plus on startup).Uses of JobImpl in net.i2p.router.tunnel
Subclasses of JobImpl in net.i2p.router.tunnelModifier and TypeClassDescriptionprivate classJob receiving one message for the next hop.private classJob sending one message to the next routers.private classImmediately fail the tunnel if the lookup fails.private classImmediately fail the tunnel if the send fails.private classJob sending one message to the next hop.private classJob removing hops from a tunnel.private classHandle router info lookup completion.private classJob to send a message after router lookup completes.private classJob to handle timeout for router lookup.Fields in net.i2p.router.tunnel declared as JobImplModifier and TypeFieldDescriptionprivate final JobImplOutboundReceiver._sendFailJobThe same job instance run after any failed send.Uses of JobImpl in net.i2p.router.tunnel.pool
Subclasses of JobImpl in net.i2p.router.tunnel.poolModifier and TypeClassDescriptionprivate classJob that forwards one build request after its lookup.private classJob that times out one unanswered build request.private static classNo-op job returned once a tunnel build message is handled.private static classRemove the participating tunnel if we can't contact the next hop Not strictly necessary, as the entry doesn't use that much space, but it affects capacity calculations.private static classNo-op job returned once a tunnel build reply message is handled.private static classJob executed when the first hop of an outbound tunnel build fails to receive the request.(package private) classHandles tunnel expiration in two phases for graceful shutdown.classRepeatedly tests a single tunnel for its lifetime to ensure it remains functional.private classHandles the reply to one test message.private classTimes out one test message.private static classSingle queue entry that drains the first-test buffer in small batches.private static final classDemotes a peer that could not be reached by a pre-connect probe.private static classBuilds tunnels for a pool that never came up.(package private) static classBackground reachability probe over the peers a client pool would provisionally use as a first hop.private static classJob to refresh LeaseSets after slow tunnel removal.private static classPeriodically drops tunnels that fail the latency test.Uses of JobImpl in net.i2p.router.web.helpers
Subclasses of JobImpl in net.i2p.router.web.helpersModifier and TypeClassDescriptionprivate classJob used to wait for a router lookup.