| Package | Description |
|---|---|
| net.i2p.data.i2np | This package defines the low-level messages sent between routers,
called Invisible Internet Network Protocol (I2NP). |
| net.i2p.desktopgui | Desktop graphical interface for managing I2P router lifecycle
from the system tray. |
| net.i2p.desktopgui.router | Router integration and communication for the Desktop GUI. |
| net.i2p.i2pcontrol | I2P Control provides a JSON-RPC 2.0 interface for controlling and monitoring the I2P router. |
| net.i2p.i2pcontrol.servlets | HTTP servlets for handling I2P Control JSON-RPC 2.0 requests. |
| net.i2p.i2pcontrol.servlets.jsonrpc2handlers | JSON-RPC 2.0 handlers for I2P Control API methods. |
| net.i2p.router | The I2P router application handles I2P network communication. |
| net.i2p.router.client | Router-side implementation of the I2CP (I2P Client Protocol) interface for application integration. |
| net.i2p.router.crypto | Router-specific cryptographic operations and implementations for I2P security. |
| net.i2p.router.crypto.ratchet | Implementation of ECIES-X25519-AEAD-Ratchet cryptographic protocol
(I2P proposal 144), providing forward secrecy and enhanced security
for I2P transport communications. |
| net.i2p.router.dummy | Dummy implementations and stub classes for testing purposes. |
| net.i2p.router.message | Garlic message creation, parsing, and source routing for I2P communications. |
| net.i2p.router.networkdb | Network database management and coordination for the I2P distributed hash table. |
| net.i2p.router.networkdb.kademlia | Kademlia DHT implementation and floodfill router functionality for I2P. |
| net.i2p.router.networkdb.reseed | Router reseeding functionality for bootstrapping into the I2P network. |
| net.i2p.router.peermanager | Peer management, profiling, and capacity calculation for I2P network optimization. |
| net.i2p.router.startup | The I2P startup package loads configuration when I2P is started. |
| net.i2p.router.sybil | Offline analysis tools for detecting Sybil attacks and malicious peer
coordination in the I2P network. |
| net.i2p.router.tasks | Periodic maintenance tasks and background jobs for I2P router operations. |
| net.i2p.router.transport | Transport layer implementations and management for I2P network communication. |
| net.i2p.router.transport.ntcp | The NTCP (New TCP) transport for I2P, allowing I2P messages to be passed
over TCP connections. |
| net.i2p.router.transport.udp | The UDP transport (also known as 'SSU' or Secure Semi-reliable UDP transport)
for I2P, allowing I2P messages to be passed over UDP connections. |
| net.i2p.router.tunnel | Core tunnel management, message processing, and encryption for I2P's anonymous routing system. |
| net.i2p.router.tunnel.pool | Tunnel pool management, creation, and peer selection for I2P's anonymous routing system. |
| net.i2p.router.update | Classes to implement the router update process for checking and applying
I2P router updates from the update manager. |
| net.i2p.router.util | Utility classes and helper functions used throughout the I2P router. |
| net.i2p.router.web | The router console user interface, implemented in routerconsole.jar, with these classes supporting the webapp in routerconsole.war. |
| net.i2p.router.web.helpers | Helpers and handlers for the router console user interface, with these classes supporting the webapp in routerconsole.war. |
| Modifier and Type | Method and Description |
|---|---|
EncryptedBuildRecord | BuildRequestRecord.encryptECIESRecord(RouterContext ctx,
PublicKey toKey,
Hash toPeer)Encrypts the record using ECIES. |
| Constructor and Description |
|---|
BuildRequestRecord(RouterContext ctx,
PrivateKey ourKey,
EncryptedBuildRecord encryptedRecord)Decrypts an encrypted build request record. |
| Constructor and Description |
|---|
InternalTrayManager(RouterContext ctx,
Main main,
boolean useSwing)Create a new InternalTrayManager with full router context access. |
Main(RouterContext ctx,
ClientAppManager mgr) |
| Modifier and Type | Method and Description |
|---|---|
static void | RouterManager.cancelShutdown(RouterContext ctx)Cancel a graceful shutdown or restart. |
static long | RouterManager.getShutdownTimeRemaining(RouterContext ctx)Get time until shutdown. |
static String | RouterManager.getStatus(RouterContext ctx)Get network status, untranslated. |
static boolean | RouterManager.isShutdownInProgress(RouterContext ctx)Is a graceful shutdown or restart in progress? |
static void | RouterManager.restart(RouterContext ctx)Restart the running I2P instance immediately. |
static void | RouterManager.restartGracefully(RouterContext ctx)Restart the running I2P instance gracefully. |
static void | RouterManager.shutDown(RouterContext ctx)Stop the running I2P instance immediately. |
static void | RouterManager.shutDownGracefully(RouterContext ctx)Stop the running I2P instance gracefully. |
| Constructor and Description |
|---|
I2PControlController(RouterContext ctx,
ClientAppManager mgr)RouterApp (new way) |
SocketController(RouterContext ctx,
ClientAppManager mgr)RouterApp (new way) |
| Constructor and Description |
|---|
JSONRPC2Servlet(RouterContext ctx,
SecurityManager secMan)Plugin |
| Constructor and Description |
|---|
AdvancedSettingsHandler(RouterContext ctx,
JSONRPC2Helper helper)Constructor for advanced settings handler. |
NetworkSettingHandler(RouterContext ctx,
JSONRPC2Helper helper)NetworkSettingHandler. |
RouterInfoHandler(RouterContext ctx,
JSONRPC2Helper helper)RouterInfoHandler. |
RouterManagerHandler(RouterContext ctx,
JSONRPC2Helper helper)RouterManagerHandler. |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | RouterThrottleImpl._context |
protected RouterContext | Tuner.BaseParam._ctxRouter context. |
| Modifier and Type | Method and Description |
|---|---|
RouterContext | Router.getContext()Non-null, but take care when accessing context items before runRouter() is called
as the context will not be initialized. |
RouterContext | JobImpl.getContext()Get the router context that this job belongs to. |
| Modifier and Type | Method and Description |
|---|---|
(package private) static List<RouterContext> | RouterContext.getContexts()Same as listContexts() but package private and modifiable. |
static List<RouterContext> | RouterContext.listContexts()Retrieve the list of router contexts currently instantiated in this JVM. |
| Modifier and Type | Method and Description |
|---|---|
protected double | Tuner.BaseParam.getAdditionalEventCount(RouterContext ctx,
String statName)Fetch the event count for an additional stat using the 60s period. |
protected double | Tuner.BaseParam.getAdditionalEventCountHourly(RouterContext ctx,
String statName)Fetch the event count for an additional stat using the 1-hour period. |
protected double | Tuner.BaseParam.getAdditionalStat(RouterContext ctx,
String statName)Fetch an additional stat value for cross-reference decisions. |
protected double | Tuner.BaseParam.getAdditionalStat5Min(RouterContext ctx,
String statName)Fetch an additional stat value using the 5-minute average. |
protected double | Tuner.BaseParam.getAdditionalStatHourly(RouterContext ctx,
String statName)Fetch an additional stat value using the 1-hour average. |
protected double | Tuner.BaseParam.getAdditionalStatLong(RouterContext ctx,
String statName)Fetch an additional stat value using the 10-minute average. |
protected double | Tuner.BaseParam.getBuildSuccessRate(RouterContext ctx)Compute actual tunnel build success rate from event counts. |
protected double | Tuner.BaseParam.getCoDelDropEventCount(RouterContext ctx,
String prefix)Fetch the total CoDel drop event count across all priority levels. |
protected int | Tuner.BaseParam.getDefaultMax(RouterContext ctx)Effective default max — override for bandwidth-scaled params. |
protected int | Tuner.BaseParam.getDefaultMin(RouterContext ctx)Effective default min — override for bandwidth-scaled params. |
protected int | Tuner.BaseParam.getDefaultStep(RouterContext ctx)Effective default step — override for bandwidth-scaled params. |
protected static int | Tuner.BaseParam.getHeavyTransitThreshold(RouterContext ctx)Transit bandwidth threshold for "heavy" — 80% of configured share bandwidth. |
protected double | Tuner.BaseParam.getMessageReceiverUtilization(RouterContext ctx)UDP message receiver pool utilization (0.0-1.0). |
static int | RouterThrottleImpl.getMinBandwidthFloorPerTunnel(RouterContext ctx)Calculate a floor for per-tunnel bandwidth allocation based on
participating tunnel count and total outbound bandwidth share. |
protected double | Tuner.BaseParam.getObservedRTT(RouterContext ctx,
String primaryStat)Fetch observed RTT, falling back to udp.sendConfirmTime
when the primary stat has no events (lightly loaded router). |
protected abstract double | Tuner.BaseParam.getObservedStat(RouterContext ctx) |
protected double | Tuner.BaseParam.getPacketHandlerUtilization(RouterContext ctx)UDP packet handler pool utilization (0.0-1.0). |
protected double | Tuner.BaseParam.getPumperUtilization(RouterContext ctx)Tunnel pumper pool utilization (0.0-1.0). |
protected double | Tuner.BaseParam.getReaderUtilization(RouterContext ctx)NTCP reader pool utilization (0.0-1.0). |
protected double | Tuner.BaseParam.getSendFinisherUtilization(RouterContext ctx)NTCP send finisher pool utilization (0.0-1.0). |
protected static int | Tuner.BaseParam.getShareBps(RouterContext ctx)Current share bandwidth in bytes per second. |
protected static int | Tuner.BaseParam.getSustainedHeavyTransitThreshold(RouterContext ctx)Transit bandwidth threshold for "sustained heavy" — 50% of configured share. |
protected double | Tuner.BaseParam.getWriterUtilization(RouterContext ctx)NTCP writer pool utilization (0.0-1.0). |
void | BanLogger.initialize(RouterContext context)Initialize the logger. |
static boolean | RouterThrottleImpl.isShuttingDown(RouterContext _context) |
void | BanLogger.logBan(Hash hash,
RouterContext context,
String reason,
long durationMs)Log a ban by hash with RouterContext (IP will be looked up from banlist). |
void | BanLogger.logBanForever(Hash hash,
RouterContext context,
String reason)Log a permanent ban with RouterContext. |
protected void | Tuner.BaseParam.persistValue(RouterContext ctx,
int value)Persist a tuned value to autotune.config. |
void | Tuner.BaseParam.refreshDefault(RouterContext ctx)Re-read the default value from autotune.config — live update after form save. |
void | Tuner.BaseParam.refreshRanges(RouterContext ctx)Re-read min/max/step from autotune.config — live update, no restart. |
(package private) static boolean | RouterContext.setGlobalContext(RouterContext ctx)Sets the default context, unless there is one already. |
| Constructor and Description |
|---|
AutotuneConfig(RouterContext ctx) |
BandwidthHistory(RouterContext ctx)Create a bandwidth history. |
Banlist(RouterContext context)Constructor. |
BanLogger(RouterContext context)Constructor with context for immediate initialization. |
BaseParam(String name,
String description,
String subsystem,
int defaultMin,
int defaultMax,
int defaultStep,
String statName,
RouterContext ctx) |
BaseParam(String name,
String description,
String subsystem,
int defaultMin,
int defaultMax,
int defaultStep,
String statName,
RouterContext ctx,
Tuner.AutotuneConfig autotune) |
Blocklist(RouterContext context)Constructor. |
ClientMessagePool(RouterContext context)Create a new ClientMessagePool. |
InNetMessagePool(RouterContext context)Constructs the message pool with given context. |
JobImpl(RouterContext context)Create a new JobImpl. |
JobQueue(RouterContext context)Does not start the pumper. |
JobQueueRunner(RouterContext context,
int id)Create a new job queue runner. |
JobQueueScaler(RouterContext context,
JobQueue jobQueue)Create a new JobQueueScaler. |
JobTiming(RouterContext context)Create a JobTiming for the given context. |
KeyManager(RouterContext context) |
MessageHistory(RouterContext context)MessageHistory. |
MessageValidator(RouterContext context)MessageValidator. |
OutNetMessage(RouterContext context)Null msg and target, zero expiration (used in OutboundMessageRegistry only) |
OutNetMessage(RouterContext context,
I2NPMessage msg,
long expiration,
int priority,
RouterInfo target)Standard constructor |
OutNetMessagePool(RouterContext context)Constructor. |
PersistentKeyRing(RouterContext ctx)PersistentKeyRing. |
RouterClock(RouterContext context)Does not start. |
RouterThrottleImpl(RouterContext context) |
StatisticsManager(RouterContext context)StatisticsManager. |
SystemHealth(RouterContext ctx)System health |
Tuner(RouterContext ctx)Set up the tuner with all tunable parameters. |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | ClientListenerRunner._contextRouter context |
protected RouterContext | ClientMessageEventListener._contextthe router context |
protected RouterContext | ClientConnectionRunner._contextrouter context |
protected RouterContext | ClientManager._ctxrouter context |
| Constructor and Description |
|---|
ClientConnectionRunner(RouterContext context,
ClientManager manager,
Socket socket)Create a new runner against the given socket |
ClientListenerRunner(RouterContext context,
ClientManager manager,
int port)Construct a new client listener runner. |
ClientManager(RouterContext context,
int port)Does not start the listeners. |
ClientManagerFacadeImpl(RouterContext context) |
ClientMessageEventListener(RouterContext context,
ClientConnectionRunner runner,
boolean enforceAuth)Create a new event listener for the given client connection. |
ClientWriterRunner(RouterContext ctx,
ClientConnectionRunner runner)Creates a new client writer runner. |
CreateSessionJob(RouterContext context,
SessionConfig config) |
LookupDestJob(RouterContext context,
ClientConnectionRunner runner,
Hash h,
Hash fromLocalDest) |
LookupDestJob(RouterContext context,
ClientConnectionRunner runner,
long reqID,
long timeout,
SessionId sessID,
Hash h,
String name,
Hash fromLocalDest)One of h or name non-null. |
MessageReceivedJob(RouterContext ctx,
ClientConnectionRunner runner,
Destination toDest,
Destination fromDest,
Payload payload,
boolean sendDirect) |
QueuedClientConnectionRunner(RouterContext context,
ClientManager manager,
I2CPMessageQueue queue)Create a new runner with the given queues |
ReportAbuseJob(RouterContext context,
ClientConnectionRunner runner,
Destination dest,
String reason,
int severity)Create abuse report |
RequestLeaseSetJob(RouterContext ctx,
ClientConnectionRunner runner,
LeaseRequestState state) |
SSLClientListenerRunner(RouterContext context,
ClientManager manager,
int port) |
| Constructor and Description |
|---|
FamilyKeyCrypto(RouterContext context)For signing and verification. |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | RatchetSKM._contextThe router context |
| Constructor and Description |
|---|
ACKTimer(RouterContext context,
Destination from,
Destination to)ACK timer for ratchet. |
ECIESAEADEngine(RouterContext ctx)Caller MUST call startup() to get threaded generation. |
Elg2KeyFactory(RouterContext ctx)Creates factory and starts background key precomputation thread. |
MuxedEngine(RouterContext ctx) |
MuxedPQEngine(RouterContext ctx)Construct a new instance. |
RatchetSKM(RouterContext context)For the router SKM only. |
RatchetSKM(RouterContext context,
Destination dest)ECIES only. |
RatchetSKM(RouterContext context,
Destination dest,
EncType type)The session key manager is constructed and accessed through the
client manager. |
| Constructor and Description |
|---|
DummyClientManagerFacade(RouterContext ctx) |
DummyNetworkDatabaseFacade(RouterContext ctx) |
DummyNetworkDatabaseSegmentor(RouterContext ctx) |
VMCommSystem(RouterContext context) |
| Modifier and Type | Method and Description |
|---|---|
static GarlicMessage | GarlicMessageBuilder.buildECIESMessage(RouterContext ctx,
GarlicConfig config)Encrypt from an anonymous source. |
(package private) static GarlicMessage | GarlicMessageBuilder.buildECIESMessage(RouterContext ctx,
GarlicConfig config,
Hash from,
Destination to,
SessionKeyManager skm,
ReplyCallback callback)ECIES_X25519 and PQ only. |
static GarlicMessage | GarlicMessageBuilder.buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey encryptKey,
RatchetSessionTag encryptTag)Ratchet only. |
static GarlicMessage | GarlicMessageBuilder.buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
int numTagsToDeliver,
int lowTagsThreshold,
SessionKeyManager skm)ELGAMAL_2048 only. |
static GarlicMessage | GarlicMessageBuilder.buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
int numTagsToDeliver,
SessionKeyManager skm)ELGAMAL_2048 only
Called by OCMJH |
static GarlicMessage | GarlicMessageBuilder.buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
SessionKeyManager skm)ELGAMAL_2048 only. |
static GarlicMessage | GarlicMessageBuilder.buildMessage(RouterContext ctx,
GarlicConfig config,
Set<SessionTag> wrappedTags,
PublicKey target,
SessionKey encryptKey,
SessionTag encryptTag)ELGAMAL_2048 only. |
(package private) static GarlicMessage | OutboundClientMessageJobHelper.createGarlicMessage(RouterContext ctx,
long replyToken,
long expiration,
PublicKey recipientPK,
PayloadGarlicConfig dataClove,
Hash from,
Destination dest,
TunnelInfo replyTunnel,
int tagsToSendOverride,
int lowTagsOverride,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
boolean requireAck,
LeaseSet bundledReplyLeaseSet,
ReplyCallback callback)Allow the app to specify the data clove directly, which enables OutboundClientMessage to resend the
same payload (including expiration and unique id) in different garlics (down different tunnels)
This is called from OCMOSJ |
static void | OutboundClientMessageOneShotJob.init(RouterContext ctx)call once only |
(package private) static boolean | GarlicMessageBuilder.needsTags(RouterContext ctx,
PublicKey key,
Hash local,
int minTagOverride)ELGAMAL_2048 only; returns false for others |
| Constructor and Description |
|---|
GarlicMessageHandler(RouterContext context) |
GarlicMessageHandler(RouterContext context,
long msgIDBloomXorLocal,
long msgIDBloomXorRouter,
long msgIDBloomXorTunnel) |
GarlicMessageParser(RouterContext context)Create a garlic message parser |
GarlicMessageReceiver(RouterContext context,
GarlicMessageReceiver.CloveReceiver receiver)Constructs a GarlicMessageReceiver without targeting a specific client destination. |
GarlicMessageReceiver(RouterContext context,
GarlicMessageReceiver.CloveReceiver receiver,
Hash clientDestination)Constructs a GarlicMessageReceiver targeting a specific client destination. |
HandleGarlicMessageJob(RouterContext context,
GarlicMessage msg,
RouterIdentity from,
Hash fromHash,
long msgIDBloomXorLocal,
long msgIDBloomXorRouter,
long msgIDBloomXorTunnel)Constructs a job to handle an inbound garlic message. |
OutboundCache(RouterContext ctx)Creates an OutboundCache instance and schedules periodic cache cleanup. |
OutboundClientMessageOneShotJob(RouterContext ctx,
OutboundCache cache,
ClientMessage msg)Send it. |
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
int timeoutMs,
int priority)Send a message directly to a peer. |
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
int timeoutMs,
int priority,
long msgIDBloomXor)Send a message directly to a peer with an XOR mask. |
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
Job onSend,
ReplyJob onSuccess,
Job onFail,
MessageSelector selector,
int timeoutMs,
int priority,
long msgIDBloomXor)Send a message directly to a peer with full options. |
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
ReplyJob onSuccess,
Job onFail,
MessageSelector selector,
int timeoutMs,
int priority)Send a message directly to a peer with reply handling. |
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
ReplyJob onSuccess,
Job onFail,
MessageSelector selector,
int timeoutMs,
int priority,
long msgIDBloomXor)Send a message directly to a peer with reply handling and XOR mask. |
| Constructor and Description |
|---|
HandleDatabaseLookupMessageJob(RouterContext ctx,
DatabaseLookupMessage receivedMessage,
RouterIdentity _from,
Hash _fromHash,
long msgIDBloomXor)Creates a new HandleDatabaseLookupMessageJob. |
PublishLocalRouterInfoJob(RouterContext ctx)PublishLocalRouterInfoJob. |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | TransientDataStore._context_context. |
protected RouterContext | PeerSelector._context_context. |
protected RouterContext | KademliaNetworkDatabaseFacade._context_context. |
| Modifier and Type | Method and Description |
|---|---|
static MessageWrapper.OneTimeSession | MessageWrapper.generateSession(RouterContext ctx,
Hash localDest,
long expiration,
boolean forceElG)Create a single key and tag, for receiving a single encrypted message,
and register it with the client's session key manager, to expire in the time specified. |
static MessageWrapper.OneTimeSession | MessageWrapper.generateSession(RouterContext ctx,
long expiration)Create a single key and tag, for receiving a single encrypted message,
and register it with our router's session key manager, to expire in the time specified. |
static MessageWrapper.OneTimeSession | MessageWrapper.generateSession(RouterContext ctx,
SessionKeyManager skm,
long expiration,
boolean forceElG)Create a single key and tag, for receiving a single encrypted message,
and register it with the client's session key manager, to expire in the time specified. |
static File | PersistentDataStore.getRouterInfoFile(RouterContext ctx,
Hash hash)The persistent RI file for a hash. |
static boolean | PersistentDataStore.isShuttingDown(RouterContext ctx)Check if the router is in a graceful or hard shutdown state. |
(package private) static boolean | SearchJob.onlyQueryFloodfillPeers(RouterContext ctx)This is now misnamed, as it is only used to determine whether to return floodfill peers only |
static long | IterativeSearchJob.reloadGracePeriod(RouterContext ctx)Reload grace period from properties (for dynamic tuning). |
(package private) static MessageWrapper.WrappedMessage | MessageWrapper.wrap(RouterContext ctx,
I2NPMessage m,
Hash from,
RouterInfo to)Garlic wrap a message from a client or this router, destined for a router,
to hide the contents from the OBEP. |
static GarlicMessage | MessageWrapper.wrap(RouterContext ctx,
I2NPMessage m,
MessageWrapper.OneTimeSession session)Garlic wrap a message from nobody, destined for an unknown router,
to hide the contents from the IBGW. |
static GarlicMessage | MessageWrapper.wrap(RouterContext ctx,
I2NPMessage m,
RouterInfo to)Garlic wrap a message from nobody, destined for a router,
to hide the contents from the OBEP. |
static GarlicMessage | MessageWrapper.wrap(RouterContext ctx,
I2NPMessage m,
SessionKey encryptKey,
RatchetSessionTag encryptTag)Garlic wrap a message from nobody, destined for an unknown router,
to hide the contents from the IBGW. |
static GarlicMessage | MessageWrapper.wrap(RouterContext ctx,
I2NPMessage m,
SessionKey encryptKey,
SessionTag encryptTag)Garlic wrap a message from nobody, destined for an unknown router,
to hide the contents from the IBGW. |
| Constructor and Description |
|---|
BlindCache(RouterContext ctx)Caller MUST call startup() to load persistent cache from disk |
CleanupLURoutersJob(RouterContext ctx,
KademliaNetworkDatabaseFacade facade)Creates a new cleanup job for least-used routers. |
ContactDrivenRefreshJob(RouterContext ctx,
FloodfillNetworkDatabaseFacade facade)Creates a new ContactDrivenRefreshJob |
DirectLookupJob(RouterContext ctx,
FloodfillNetworkDatabaseFacade facade,
Hash peer,
RouterInfo oldRI,
Job onFind,
Job onFail) |
DirectLookupMatchJob(RouterContext ctx,
FloodSearchJob job)DirectLookupMatchJob. |
ExpireLeasesJob(RouterContext ctx,
KademliaNetworkDatabaseFacade facade)ExpireLeasesJob. |
ExpireRoutersJob(RouterContext ctx,
KademliaNetworkDatabaseFacade facade)Constructs a job to expire outdated routers from the network database. |
ExploreJob(RouterContext context,
KademliaNetworkDatabaseFacade facade,
Hash key,
boolean isRealExplore,
long msgIDBloomXor)Constructs a new ExploreJob with given parameters and calculates concurrency level. |
FailedJob(RouterContext enclosingContext,
RouterInfo peer) |
FailedJob(RouterContext enclosingContext,
RouterInfo peer,
boolean penalizePeer)Allow the choice as to whether failed searches should count against
the peer (such as if we search for a random key) |
FloodfillDatabaseLookupMessageHandler(RouterContext context,
FloodfillNetworkDatabaseFacade facade)Constructs a new handler for floodfill DatabaseLookupMessages. |
FloodfillDatabaseStoreMessageHandler(RouterContext context,
FloodfillNetworkDatabaseFacade facade)Create a handler for floodfill database store messages. |
FloodfillMonitorJob(RouterContext context,
FloodfillNetworkDatabaseFacade facade)Creates a new FloodfillMonitorJob. |
FloodfillNetworkDatabaseFacade(RouterContext context)Main DB |
FloodfillNetworkDatabaseFacade(RouterContext context,
Hash dbid)Sub DBs |
FloodfillNetworkDatabaseSegmentor(RouterContext context)Construct a new FloodfillNetworkDatabaseSegmentor with the given
RouterContext, containing a default, main netDb
and which is prepared to add client netDbs. |
FloodfillPeerSelector(RouterContext ctx)FloodfillPeerSelector. |
FloodfillRouterInfoFloodJob(RouterContext context,
FloodfillNetworkDatabaseFacade facade)FloodfillRouterInfoFloodJob. |
FloodfillStoreJob(RouterContext context,
FloodfillNetworkDatabaseFacade facade,
Hash key,
DatabaseEntry data,
Job onSuccess,
Job onFailure,
long timeoutMs)Create a new FloodfillStoreJob to send data to floodfills. |
FloodfillStoreJob(RouterContext context,
FloodfillNetworkDatabaseFacade facade,
Hash key,
DatabaseEntry data,
Job onSuccess,
Job onFailure,
long timeoutMs,
Set<Hash> toSkip)Create a new FloodfillStoreJob to send data to floodfills. |
FloodfillVerifyStoreJob(RouterContext ctx,
Hash key,
Hash client,
long published,
int type,
Hash sentTo,
Set<Hash> toSkip,
FloodfillNetworkDatabaseFacade facade)Delay a few seconds, then start the verify |
FloodOnlyLookupMatchJob(RouterContext ctx,
FloodSearchJob job) |
FloodOnlyLookupSelector(RouterContext ctx,
FloodOnlySearchJob search)FloodOnlyLookupSelector. |
FloodOnlyLookupTimeoutJob(RouterContext ctx,
FloodSearchJob job)FloodOnlyLookupTimeoutJob. |
FloodOnlySearchJob(RouterContext ctx,
FloodfillNetworkDatabaseFacade facade,
Hash key,
Job onFind,
Job onFailed,
int timeoutMs)For DirectLookupJob extension, RI only, different match job |
FloodOnlySearchJob(RouterContext ctx,
FloodfillNetworkDatabaseFacade facade,
Hash key,
Job onFind,
Job onFailed,
int timeoutMs,
boolean isLease) |
FloodSearchJob(RouterContext ctx,
FloodfillNetworkDatabaseFacade facade,
Hash key,
Job onFind,
Job onFailed,
int timeoutMs,
boolean isLease) |
HandleFloodfillDatabaseLookupMessageJob(RouterContext ctx,
DatabaseLookupMessage receivedMessage,
RouterIdentity from,
Hash fromHash,
long msgIDBloomXor)Creates a new job to handle a floodfill database lookup message |
HandleFloodfillDatabaseStoreMessageJob(RouterContext ctx,
DatabaseStoreMessage receivedMessage,
RouterIdentity from,
Hash fromHash,
FloodfillNetworkDatabaseFacade facade,
long msgIDBloomXor) |
IterativeFollowupJob(RouterContext ctx,
Hash key,
Hash to,
IterativeSearchJob search)IterativeFollowupJob. |
IterativeLookupJob(RouterContext ctx,
DatabaseSearchReplyMessage dsrm,
IterativeSearchJob search)method comment |
IterativeLookupSelector(RouterContext ctx,
IterativeSearchJob search)IterativeLookupSelector. |
IterativeSearchJob(RouterContext ctx,
FloodfillNetworkDatabaseFacade facade,
Hash key,
Job onFind,
Job onFailed,
int timeoutMs,
boolean isLease)Lookup using exploratory tunnels |
IterativeSearchJob(RouterContext ctx,
FloodfillNetworkDatabaseFacade facade,
Hash key,
Job onFind,
Job onFailed,
int timeoutMs,
boolean isLease,
Hash fromLocalDest)Lookup using the client's tunnels. |
IterativeTimeoutJob(RouterContext ctx,
Hash peer,
IterativeSearchJob job)Create a timeout job for an iterative search |
KademliaNetworkDatabaseFacade(RouterContext context,
Hash dbid)Initializes the Kademlia-based network database facade. |
NegativeLookupCache(RouterContext context)Creates a new NegativeLookupCache. |
PeerSelector(RouterContext ctx)PeerSelector. |
PersistentDataStore(RouterContext ctx,
String dbDir,
KademliaNetworkDatabaseFacade facade)Creates a new persistent data store. |
ProbeStalePeerJob(RouterContext ctx,
FloodfillNetworkDatabaseFacade facade)Constructor. |
RefreshRoutersJob(RouterContext ctx,
FloodfillNetworkDatabaseFacade facade)RefreshRoutersJob. |
RepublishLeaseSetJob(RouterContext ctx,
KademliaNetworkDatabaseFacade facade,
Hash destHash)Creates a new job to republish a LeaseSet for the given destination. |
SearchJob(RouterContext context,
KademliaNetworkDatabaseFacade facade,
Hash key,
Job onSuccess,
Job onFailure,
long timeoutMs,
boolean keepStats,
boolean isLease,
long msgIDBloomXor)Create a new search for the routingKey specified |
SearchMessageSelector(RouterContext context,
RouterInfo peer,
long expiration,
SearchState state)SearchMessageSelector. |
SearchReplyJob(RouterContext enclosingContext,
SearchJob job,
DatabaseSearchReplyMessage message,
Hash peer,
long duration)SearchReplyJob. |
SearchState(RouterContext context,
Hash key)SearchState. |
SearchUpdateReplyFoundJob(RouterContext context,
RouterInfo peer,
SearchState state,
KademliaNetworkDatabaseFacade facade,
SearchJob job)Create job with no tunnel info |
SearchUpdateReplyFoundJob(RouterContext context,
RouterInfo peer,
SearchState state,
KademliaNetworkDatabaseFacade facade,
SearchJob job,
TunnelInfo outTunnel,
TunnelInfo replyTunnel)Create job with tunnel info for reply routing |
SingleLookupJob(RouterContext ctx,
DatabaseSearchReplyMessage dsrm)SingleLookupJob. |
SingleSearchJob(RouterContext ctx,
Hash key,
Hash to) |
StartExplorersJob(RouterContext context,
KademliaNetworkDatabaseFacade facade)Constructs a StartExplorersJob to manage peer exploration scheduling. |
StoreJob(RouterContext context,
KademliaNetworkDatabaseFacade facade,
Hash key,
DatabaseEntry data,
Job onSuccess,
Job onFailure,
long timeoutMs)Send a data structure to the floodfills |
StoreJob(RouterContext context,
KademliaNetworkDatabaseFacade facade,
Hash key,
DatabaseEntry data,
Job onSuccess,
Job onFailure,
long timeoutMs,
Set<Hash> toSkip)Send a data structure to the floodfills, skipping certain peers |
StoreMessageSelector(RouterContext ctx,
long storeJobId,
RouterInfo peer,
long waitingForId,
long expiration)Creates a new message selector for database store confirmations. |
StoreState(RouterContext ctx,
Hash key,
DatabaseEntry data)StoreState. |
StoreState(RouterContext ctx,
Hash key,
DatabaseEntry data,
Set<Hash> toSkip)Constructs a new StoreState for tracking store operations. |
TransientDataStore(RouterContext ctx)TransientDataStore. |
| Constructor and Description |
|---|
ReseedBundler(RouterContext ctx)ReseedBundler. |
ReseedChecker(RouterContext context)Constructor. |
Reseeder(RouterContext ctx,
ReseedChecker rc)Holds context and checker references for reseed operations. |
| Modifier and Type | Method and Description |
|---|---|
(package private) RouterContext | PeerProfile.getContext()Helper for calculators. |
| Constructor and Description |
|---|
DBHistory(RouterContext context,
String statGroup)DBHistory. |
PeerManager(RouterContext context)Profiles are now loaded in a separate thread,
so this should return quickly. |
PeerManagerFacadeImpl(RouterContext ctx)PeerManagerFacadeImpl. |
PeerProfile(RouterContext context,
Hash peer)Caller should call setLastHeardAbout() and setFirstHeardAbout() |
PeerTestJob(RouterContext context)Creates a new PeerTestJob instance and initializes required statistics. |
ProfileManagerImpl(RouterContext context)ProfileManagerImpl. |
ProfileOrganizer(RouterContext context)Creates a profile organizer with empty tier maps and registers
performance tracking statistics for peer classification. |
ProfilePersistenceHelper(RouterContext ctx)ProfilePersistenceHelper. |
TunnelHistory(RouterContext context,
String statGroup)TunnelHistory. |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | LoadClientAppsJob.DelayedRunClient._ctx_ctx. |
| Modifier and Type | Method and Description |
|---|---|
static List<ClientAppConfig> | ClientAppConfig.getClientApps(RouterContext ctx)Go through the files, and return a List of ClientAppConfig structures
This is for the router. |
(package private) static long | CreateRouterInfoJob.getCurrentPublishDate(RouterContext context)We probably don't want to expose the exact time at which a router published its info. |
static EncType | CreateRouterInfoJob.getEncTypeConfig(RouterContext ctx)The configured EncType to expect on read-in. |
static SigType | CreateRouterInfoJob.getSigTypeConfig(RouterContext ctx)The configured SigType to expect on read-in. |
static void | MigrateJetty.migrate(RouterContext ctx,
List<ClientAppConfig> apps)For each entry in apps, if the main class is an old Jetty class,
migrate it to the new Jetty class, and update the Jetty config files. |
static void | LoadClientAppsJob.runClient(String className,
String clientName,
String[] args,
RouterContext ctx,
Log log)Run client in a new thread. |
static void | LoadClientAppsJob.runClient(String className,
String clientName,
String[] args,
RouterContext ctx,
Log log,
ThreadGroup threadGroup,
ClassLoader cl)Run client in a new thread. |
| Constructor and Description |
|---|
BootCommSystemJob(RouterContext context)Create a new BootCommSystemJob. |
BootNetworkDbJob(RouterContext ctx)Create a new BootNetworkDbJob. |
BootPeerManagerJob(RouterContext ctx)Create a new BootPeerManagerJob. |
BuildTrustedLinksJob(RouterContext context,
Job next)Create a new trusted links job. |
CreateRouterInfoJob(RouterContext ctx,
Job next)Creates a new CreateRouterInfoJob. |
DelayedRunClient(SimpleTimer2 pool,
RouterContext enclosingContext,
String className,
String clientName,
String[] args)caller MUST call schedule() |
DelayedRunClient(SimpleTimer2 pool,
RouterContext enclosingContext,
String className,
String clientName,
String[] args,
ThreadGroup threadGroup,
ClassLoader cl)caller MUST call schedule() |
LoadClientAppsJob(RouterContext ctx)LoadClientAppsJob. |
LoadRouterInfoJob(RouterContext ctx)LoadRouterInfoJob. |
RebuildRouterInfoJob(RouterContext context)RebuildRouterInfoJob. |
RouterAppManager(RouterContext ctx)RouterAppManager. |
StartAcceptingClientsJob(RouterContext context)StartAcceptingClientsJob. |
StartupJob(RouterContext context)StartupJob. |
| Modifier and Type | Method and Description |
|---|---|
static Analysis | Analysis.getInstance(RouterContext ctx)Gets the singleton Analysis instance, creating it if necessary. |
| Modifier and Type | Method and Description |
|---|---|
static void | BasePerms.fix(RouterContext ctx)Fix base permissions for Windows installations. |
static String | OOMListener.getWrapperConfigPath(RouterContext ctx)Get the best guess path for wrapper.config file. |
static void | CryptoChecker.warnUnavailableCrypto(RouterContext ctx)Check and warn about unavailable cryptographic algorithms. |
| Constructor and Description |
|---|
CoalesceStatsEvent(RouterContext ctx)Create a new stats coalescence event. |
GracefulShutdown(RouterContext ctx)Create a new graceful shutdown handler. |
OOMListener(RouterContext ctx)Create a new out-of-memory event listener. |
PersistRouterInfoJob(RouterContext ctx)Create a new router info persistence job. |
ReadConfigJob(RouterContext ctx)Create a new configuration reader job. |
Republish(RouterContext ctx)Create a new router info republisher. |
Restarter(RouterContext ctx)Create a new router restarter. |
RouterWatchdog(RouterContext ctx)Create a new router watchdog. |
ShutdownHook(RouterContext ctx)Create a new shutdown hook for emergency router shutdown. |
UpdateRoutingKeyModifierJob(RouterContext ctx)Create a new routing key modifier update job. |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | TransportImpl._context_context. |
| Modifier and Type | Method and Description |
|---|---|
RouterContext | TransportImpl.getContext() |
| Modifier and Type | Method and Description |
|---|---|
static void | GeoIP.banCountry(RouterContext ctx,
String country)Bans routers located in a specified country. |
(package private) static void | GetBidsJob.fail(RouterContext context,
OutNetMessage msg)Fail a message and trigger failure callbacks |
(package private) static void | GetBidsJob.getBids(RouterContext context,
TransportManager tmgr,
OutNetMessage msg)Transport bids for a message and send it if a suitable bid is found |
static TransportUtil.IPv6Config | TransportUtil.getIPv6Config(RouterContext ctx,
String transportStyle) |
static int | TransportImpl.getTransportMaxConnections(RouterContext ctx,
String style) |
static boolean | TransportUtil.isIPv4Firewalled(RouterContext ctx)This returns true if the force-firewalled setting is configured, false otherwise. |
static boolean | TransportUtil.isIPv6Firewalled(RouterContext ctx)This returns true if the force-firewalled setting is configured, false otherwise. |
static boolean | TransportManager.isNTCPEnabled(RouterContext ctx) |
static int | TransportUtil.selectRandomPort(RouterContext ctx,
String transportStyle)Pick a random port between the configured boundaries |
| Constructor and Description |
|---|
CommSystemFacadeImpl(RouterContext context)CommSystemFacadeImpl. |
FIFOBandwidthLimiter(RouterContext context)FIFOBandwidthLimiter. |
FIFOBandwidthRefiller(RouterContext context,
FIFOBandwidthLimiter limiter)comment |
OutboundMessageRegistry(RouterContext context)OutboundMessageRegistry. |
TransportImpl(RouterContext context)Initialize the new transport |
TransportManager(RouterContext context) |
UPnPManager(RouterContext context,
TransportManager manager)UPnPManager. |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | EstablishBase._context_context. |
| Modifier and Type | Method and Description |
|---|---|
(package private) static byte[][] | OutboundNTCP2State.generateSipHashKeys(RouterContext ctx,
HandshakeState state)KDF for SipHash |
| Constructor and Description |
|---|
EstablishBase(RouterContext ctx,
NTCPTransport transport,
NTCPConnection con)EstablishBase. |
EventPumper(RouterContext ctx,
NTCPTransport transport)EventPumper. |
InboundEstablishState(RouterContext ctx,
NTCPTransport transport,
NTCPConnection con)Creates a new InboundEstablishState for the given context, transport, and connection |
NTCPConnection(RouterContext ctx,
NTCPTransport transport,
RouterIdentity remotePeer,
RouterAddress remAddr,
int version)Create an outbound unconnected NTCP connection. |
NTCPConnection(RouterContext ctx,
NTCPTransport transport,
SocketChannel chan,
SelectionKey key)Create an inbound connected (though not established) NTCP connection. |
NTCPTransport(RouterContext ctx,
X25519KeyFactory xdh) |
OutboundNTCP2State(RouterContext ctx,
NTCPTransport transport,
NTCPConnection con)Create a new outbound NTCP2 state. |
Reader(RouterContext ctx)Constructor. |
Writer(RouterContext ctx)Writer. |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | InboundEstablishState._contextRouter context |
protected RouterContext | OutboundEstablishState._contextThe router context |
protected RouterContext | PeerState._contextThe router context. |
| Modifier and Type | Method and Description |
|---|---|
static UDPPacket | UDPPacket.acquire(RouterContext ctx,
boolean inbound)Inbound flag. |
static void | PeerState.loadConfig(RouterContext ctx)Load configurable UDP transport parameters from router.config. |
| Constructor and Description |
|---|
EstablishmentManager(RouterContext ctx,
UDPTransport transport)EstablishmentManager. |
InboundEstablishState(RouterContext ctx,
InetSocketAddress addr)For SSU2 |
InboundEstablishState2(RouterContext ctx,
UDPTransport transport,
UDPPacket packet)Start a new handshake with the given incoming packet,
which must be a Session Request or Token Request. |
InboundMessageFragments(RouterContext ctx,
OutboundMessageFragments outbound,
UDPTransport transport)InboundMessageFragments. |
InboundMessageState(RouterContext ctx,
long messageId,
Hash from)Constructs a new InboundMessageState with no fragments. |
InboundMessageState(RouterContext ctx,
long messageId,
Hash from,
byte[] data,
int off,
int len,
int fragmentNum,
boolean isLast)Constructs and initializes by receiving one fragment. |
IntroductionManager(RouterContext ctx,
UDPTransport transport)method comment |
MessageReceiver(RouterContext ctx,
UDPTransport transport)MessageReceiver. |
OutboundEstablishState(RouterContext ctx,
RemoteHostId claimedAddress,
RemoteHostId remoteHostId,
RouterIdentity remotePeer,
boolean needIntroduction,
SessionKey introKey,
UDPAddress addr)For SSU2 |
OutboundEstablishState2(RouterContext ctx,
UDPTransport transport,
RemoteHostId claimedAddress,
RemoteHostId remoteHostId,
RouterIdentity remotePeer,
boolean needIntroduction,
SessionKey introKey,
RouterAddress ra,
UDPAddress addr,
int version)Prepare to start a new handshake with the given peer. |
OutboundMessageFragments(RouterContext ctx,
UDPTransport transport)OutboundMessageFragments. |
PacketBuilder2(RouterContext ctx,
UDPTransport transport)No state, all methods are thread-safe. |
PacketHandler(RouterContext ctx,
UDPTransport transport,
EstablishmentManager establisher,
InboundMessageFragments inbound,
PeerTestManager testManager,
IntroductionManager introManager)Create a new packet handler. |
PacketPusher(RouterContext ctx,
OutboundMessageFragments fragments,
List<UDPEndpoint> endpoints)Constructs a PacketPusher instance. |
PeerState(RouterContext ctx,
UDPTransport transport,
InetSocketAddress addr,
Hash remotePeer,
boolean isInbound,
int rtt)For SSU2 |
PeerState2(RouterContext ctx,
UDPTransport transport,
InetSocketAddress remoteAddress,
Hash remotePeer,
boolean isInbound,
int rtt,
CipherState sendCha,
CipherState rcvCha,
long sendID,
long rcvID,
byte[] sendHdrKey1,
byte[] sendHdrKey2,
byte[] rcvHdrKey2)If inbound, caller MUST immediately call setWeRelayToThemAs() (if nonzero) and sendAck0(). |
PeerStateDestroyed(RouterContext ctx,
UDPTransport transport,
PeerState2 peer)This must be called after the first termination or termination ack
was sent from PeerState2, so the next packet number is correct. |
PeerStateDestroyed(RouterContext ctx,
UDPTransport transport,
RemoteHostId id,
long sendID,
long rcvID,
CipherState sendCha,
CipherState rcvCha,
byte[] sendKey1,
byte[] sendKey2,
byte[] rcvKey2,
int reason)Direct from IES2, there was never a PS2. |
PeerTestEvent(RouterContext ctx,
UDPTransport udp,
PeerTestManager ptmgr)Peer test event. |
PeerTestManager(RouterContext context,
UDPTransport transport)Have seen peer tests (as Alice) get stuck (_currentTest != null)
so I've thrown some synchronizization on the methods;
don't know the root cause or whether this fixes it |
UDPEndpoint(RouterContext ctx,
UDPTransport transport,
int listenPort,
InetAddress bindAddress) |
UDPReceiver(RouterContext ctx,
UDPTransport transport,
DatagramSocket socket,
String name,
SocketListener lsnr)Constructor name parameter. |
UDPSender(RouterContext ctx,
DatagramSocket socket,
String name,
SocketListener lsnr)Constructs a UDPSender with the given context, socket, name, and endpoint listener. |
UDPTransport(RouterContext ctx,
X25519KeyFactory xdh) |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | TunnelCreatorConfig._context_context. |
protected RouterContext | TrivialPreprocessor._contextThe router context |
protected RouterContext | TunnelGateway._contextrouter context |
protected RouterContext | FragmentHandler._contextthe context |
| Modifier and Type | Method and Description |
|---|---|
static int | TunnelDispatcher.getShareBandwidth(RouterContext ctx)Get the current bandwidth share in KBps |
| Constructor and Description |
|---|
BatchedPreprocessor(RouterContext ctx,
String name)Create a new preprocessor for batched tunnel messages. |
BatchedRouterPreprocessor(RouterContext ctx,
HopConfig cfg)Create a preprocessor for inbound gateway tunnels. |
BatchedRouterPreprocessor(RouterContext ctx,
TunnelCreatorConfig cfg)Create a preprocessor for outbound gateway tunnels. |
BloomFilterIVValidator(RouterContext ctx,
int KBps)Construct the validator, selecting filter size based on bandwidth and memory. |
FragmentHandler(RouterContext context,
FragmentHandler.DefragmentedReceiver receiver)Deprecated. |
FragmentHandler(RouterContext context,
FragmentHandler.DefragmentedReceiver receiver,
boolean isInbound) |
InboundEndpointProcessor(RouterContext ctx,
TunnelCreatorConfig cfg,
IVValidator validator)InboundEndpointProcessor. |
InboundGatewayReceiver(RouterContext ctx,
HopConfig cfg) |
InboundMessageDistributor(RouterContext ctx,
Hash client)Create a new inbound message distributor. |
OutboundMessageDistributor(RouterContext ctx,
int priority)Create a new outbound message distributor. |
OutboundMessageDistributor(RouterContext ctx,
int priority,
SyntheticREDQueue bwe)Create a new outbound message distributor with bandwidth estimation. |
OutboundReceiver(RouterContext ctx,
PooledTunnelCreatorConfig cfg)OutboundReceiver. |
OutboundTunnelEndpoint(RouterContext ctx,
HopConfig config,
HopProcessor processor)OutboundTunnelEndpoint. |
PumpedTunnelGateway(RouterContext context,
TunnelGateway.QueuePreprocessor preprocessor,
TunnelGateway.Sender sender,
TunnelGateway.Receiver receiver,
TunnelGatewayPumper pumper)Constructs a PumpedTunnelGateway instance. |
ThrottledPumpedTunnelGateway(RouterContext context,
TunnelGateway.QueuePreprocessor preprocessor,
TunnelGateway.Sender sender,
TunnelGateway.Receiver receiver,
TunnelGatewayPumper pumper,
HopConfig config)Constructs a ThrottledPumpedTunnelGateway with bandwidth throttling. |
TrivialPreprocessor(RouterContext ctx) |
TunnelCreatorConfig(RouterContext ctx,
int length,
boolean isInbound)For exploratory only (null destination) |
TunnelCreatorConfig(RouterContext ctx,
int length,
boolean isInbound,
Hash destination) |
TunnelDispatcher(RouterContext ctx)Creates a new instance of TunnelDispatcher |
TunnelGateway(RouterContext context,
TunnelGateway.QueuePreprocessor preprocessor,
TunnelGateway.Sender sender,
TunnelGateway.Receiver receiver)Creates a new TunnelGateway. |
TunnelGatewayPumper(RouterContext ctx)Creates a new TunnelGatewayPumper and starts configured number of pump threads. |
TunnelGatewayZeroHop(RouterContext context,
TunnelCreatorConfig config)Create a zero-hop gateway for the specified tunnel. |
TunnelParticipant(RouterContext ctx,
HopConfig config,
HopProcessor processor)Construct for intermediate tunnel participant (not endpoint). |
TunnelParticipant(RouterContext ctx,
InboundEndpointProcessor inEndProc)Construct for inbound tunnel endpoint. |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | TunnelPool._contextThe router context |
protected RouterContext | ConnectChecker.ctxthe router context |
| Modifier and Type | Method and Description |
|---|---|
static void | BuildMessageGenerator.createRecord(int recordNum,
int hop,
TunnelBuildMessage msg,
TunnelCreatorConfig cfg,
Hash replyRouter,
long replyTunnel,
RouterContext ctx,
PublicKey peerKey,
Properties props)Place the asymmetrically encrypted record in the specified record slot,
containing the hop's configuration (as well as the reply info, if it is an outbound endpoint) |
static long | TunnelPeerSelector.getActivityWindow(RouterContext ctx)Compute the activity window for peer selection based on current network
visibility. |
(package private) static int | TunnelPool.getBuildTriesQuantityOverride(RouterContext ctx)Quantity override threshold from config or default (12). |
static int | BuildRequestor.getFirstHopTimeout(RouterContext ctx)How long the OutNetMessage for the first hop gets before
TunnelBuildFirstHopFailJob fires. |
static long | BuildExecutor.getGoodDeficitThrottle(RouterContext ctx)Get the GOOD deficit throttle interval from config or default (30s). |
static int | TestJob.getHardLimit(RouterContext ctx)Hard limit for total TestJob instances (queued + active). |
(package private) static long | TunnelPool.getLeaseMaxDuration(RouterContext ctx)Maximum lease set lease duration from config or auto-computed default. |
(package private) static long | TunnelPool.getLeaseSetBuildMinInterval(RouterContext ctx)LeaseSet build minimum interval from config or default (2 minutes). |
(package private) static int | TunnelPool.getMaxConcurrentBuildsPerDirection(RouterContext ctx)Max concurrent builds per direction from config or default (6). |
(package private) static int | BuildRequestor.getMaxConsecutiveClientBuildFails(RouterContext ctx)Maximum consecutive client build timeouts before forcing exploratory tunnel for replies. |
protected static Set<Hash> | TunnelPeerSelector.getPeersInPool(RouterContext ctx,
TunnelPool pool)Get all non-self peers in active tunnels of the given pool. |
(package private) static long | TunnelPool.getRefreshThrottle(RouterContext ctx)Refresh throttle interval from config or default (2 minutes). |
static int | BuildRequestor.getRequestTimeout(RouterContext ctx)How long we wait for a reply before trying a different pool/peers. |
(package private) static long | TunnelPool.getStartupTime(RouterContext ctx)Startup suppression period from config or default (5 minutes). |
(package private) static int | BuildExecutor.getTunnelLifetime(RouterContext ctx)Get the tunnel lifetime from config. |
(package private) static int | TunnelPool.getTunnelLifetime(RouterContext ctx)Tunnel lifetime from config or default (10 minutes). |
(package private) static int | BuildExecutor.getTunnelTargetBuffer(RouterContext ctx)Get the target build buffer from config or default (0). |
protected static boolean | TunnelPeerSelector.hasRecoveredFromFailure(RouterContext ctx,
Hash peer)Check if a peer has recovered from failure and can be reconsidered. |
protected static boolean | TunnelPeerSelector.hasValidTransportAddress(RouterContext ctx,
Hash peer)Check if a peer's RouterInfo has at least one reachable SSU or NTCP address. |
static boolean | TunnelPeerSelector.isFirstHopFailing(RouterContext ctx,
Hash peer)Check if a peer recently failed as first hop and should be excluded. |
protected static boolean | TunnelPeerSelector.isInStartupGracePeriod(RouterContext ctx)Is the router in the startup grace period?
During startup, peers haven't accumulated test history yet, so
quality filters (pre-qualification, tier capping) should be relaxed
to allow tunnels to build. |
protected static boolean | TunnelPeerSelector.isLowAcceptanceRatio(RouterContext ctx,
Hash peer)Check if a peer has a history of rejecting tunnel build requests. |
(package private) static boolean | TunnelPeerSelector.isStalePeer(RouterContext ctx,
Hash peer)Check if a peer is stale — no contact (heard from or heard about) within
the dynamic activity window. |
static void | TunnelPeerSelector.keepAlive(RouterContext ctx,
boolean aggressive)Periodically called to keep transport sessions alive for top-tier peers and
proactively establish connections to Fast/HighCap peers before builds need them. |
protected static void | TunnelPeerSelector.preConnectTo(RouterContext ctx,
Hash peer)Trigger an outbound connection establishment to a peer. |
protected static void | TunnelPeerSelector.prunePeerMaps(RouterContext ctx)Prune expired entries from static peer maps. |
protected static void | TunnelPeerSelector.recordFirstHopFail(RouterContext ctx,
Hash peer)Record that a peer failed as first hop (first hop unreachable). |
protected static void | TunnelPeerSelector.recordPeerFailure(RouterContext ctx,
Hash peer)Record that a peer failed during peer selection (first-hop or adjacent). |
static boolean | BuildRequestor.request(RouterContext ctx,
PooledTunnelCreatorConfig cfg,
BuildExecutor exec,
long firstHopTimeout)Initiates a tunnel build request. |
static void | ExpireJob.scheduleExpiration(RouterContext ctx,
PooledTunnelCreatorConfig cfg)Schedule a tunnel for batched expiration. |
static boolean | TunnelPeerSelector.shouldExclude(RouterContext ctx,
RouterInfo peer)Should the peer be excluded based on its published caps, crypto, and version? |
static boolean | TestJob.shouldSchedule(RouterContext ctx,
PooledTunnelCreatorConfig cfg)Static method to check if a TestJob should be created and scheduled. |
protected static boolean | TunnelPeerSelector.supportsNTCP2(RouterContext ctx,
Hash peer)Check if a peer supports NTCP2 transport. |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | UpdateHandler._contextThe router context for configuration access |
protected RouterContext | UpdateRunner._contextrouter context |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | RouterPasswordManager._contextthe context |
| Constructor and Description |
|---|
MaskedIPSet(RouterContext ctx,
Hash peer,
int mask)The Set of IPs for this peer, with a given mask. |
MaskedIPSet(RouterContext ctx,
Hash peer,
RouterInfo pinfo,
int mask)The Set of IPs for this peer, with a given mask. |
MaskedIPSet(RouterContext ctx,
RouterInfo pinfo,
int mask)The Set of IPs for this peer, with a given mask. |
RouterPasswordManager(RouterContext ctx) |
| Modifier and Type | Field and Description |
|---|---|
protected RouterContext | HelperBase._contextthe router context |
protected RouterContext | PluginStarter._context_context. |
protected RouterContext | FormHandler._contextRouter context |
protected RouterContext | UpdateHandler._context_context. |
| Modifier and Type | Method and Description |
|---|---|
static RouterContext | ContextHelper.getContext(String contextId) |
| Modifier and Type | Method and Description |
|---|---|
(package private) static WebAppContext | WebAppStarter.addWebApp(RouterContext ctx,
ContextHandlerCollection server,
String appName,
String warPath,
File tmpdir)add but don't start
This is used only by RouterConsoleRunner, which adds all the webapps first
and then starts all at once. |
static boolean | PluginStarter.deletePlugin(RouterContext ctx,
String appName) |
static boolean | DeadlockDetector.detect(RouterContext ctx)detect. |
static boolean | NewsHelper.dontInstall(RouterContext ctx) |
static String | TuningFormHandler.getProp(RouterContext ctx,
String param,
String field,
int defaultVal)Read a tuner property with a default. |
(package private) static void | RouterConsoleRunner.initialize(RouterContext ctx,
WebAppContext context)Set up basic security constraints for the webapp. |
static boolean | NewsHelper.isBaseReadonly(RouterContext ctx) |
static boolean | NewsHelper.isDevSU3UpdateAvailable(RouterContext ctx)Will be false if already downloaded or if dev update disabled. |
static boolean | PluginStarter.isPluginRunning(String pluginName,
RouterContext ctx) |
protected static boolean | PluginStarter.isPluginRunning(String pluginName,
RouterContext ctx,
Server s) |
static boolean | NewsHelper.isUnsignedUpdateAvailable(RouterContext ctx)Will be false if already downloaded or if dev update disabled. |
static boolean | NewsHelper.isUpdateDisabled(RouterContext ctx) |
static long | NewsHelper.lastChecked(RouterContext ctx) |
static long | NewsHelper.lastUpdated(RouterContext ctx)When the news was last downloaded |
(package private) static void | ConfigServiceHandler.registerSignalHandler(RouterContext ctx)Register a handler for signals,
so we can handle HUP from the wrapper (wrapper 3.2.0 or higher) |
static void | ConfigServiceHandler.registerWrapperNotifier(RouterContext ctx,
int code,
boolean rekey)Register two shutdown hooks, one to rekey and/or tell the wrapper we are stopping,
and a final one to tell the wrapper we are stopped. |
static boolean | NewsHelper.shouldShowNews(RouterContext ctx) |
static void | NewsHelper.showNews(RouterContext ctx,
boolean yes)Save config with the timestamp of the current news to hide, or 0 to show |
static boolean | PluginStarter.startPlugin(RouterContext ctx,
String appName) |
(package private) static void | PluginStarter.startPlugins(RouterContext ctx)this shouldn't throw anything |
static void | WebAppStarter.startWebApp(RouterContext ctx,
ContextHandlerCollection server,
String appName,
String warPath)Adds and starts. |
static void | WebAppStarter.startWebApp(RouterContext ctx,
ContextHandlerCollection server,
String appName,
String warPath,
String pluginName)Adds and starts. |
static String | NewsHelper.status(RouterContext ctx) |
static String | NewsHelper.status(RouterContext ctx,
HttpSession session) |
protected static boolean | PluginStarter.stopPlugin(RouterContext ctx,
Server s,
String appName) |
static boolean | PluginStarter.stopPlugin(RouterContext ctx,
String appName) |
(package private) static void | WebAppStarter.stopWebApp(RouterContext ctx,
Server s,
String appName)Stop it and remove the context. |
static void | WebAppStarter.stopWebApp(RouterContext ctx,
String appName)Stop it and remove the context. |
static void | RouterConsoleRunner.storeWebAppProperties(RouterContext ctx,
Properties props)storeWebAppProperties. |
static void | PluginStarter.updateAll(RouterContext ctx)threaded |
static ConsoleUpdateManager | UpdateHandler.updateManager(RouterContext ctx) |
| Constructor and Description |
|---|
ConsolePasswordManager(RouterContext ctx)Description. |
DeadlockDetector(RouterContext ctx)DeadlockDetector. |
GraphGenerator(RouterContext ctx)GraphGenerator. |
PluginStarter(RouterContext ctx)PluginStarter. |
PluginStopper(RouterContext ctx,
Server server)PluginStopper. |
RouterConsoleRunner(RouterContext ctx,
ClientAppManager mgr,
String[] args)non-SSL:
RouterConsoleRunner
RouterConsoleRunner 7657
RouterConsoleRunner 7657 127.0.0.1
RouterConsoleRunner 7657 127.0.0.1,::1
RouterConsoleRunner 7657 127.0.0.1,::1 ./webapps/
SSL:
RouterConsoleRunner -s 7657
RouterConsoleRunner -s 7657 127.0.0.1
RouterConsoleRunner -s 7657 127.0.0.1,::1
RouterConsoleRunner -s 7657 127.0.0.1,::1 ./webapps/
If using both, non-SSL must be first:
RouterConsoleRunner 7657 127.0.0.1 -s 7667
RouterConsoleRunner 7657 127.0.0.1 -s 7667 127.0.0.1
RouterConsoleRunner 7657 127.0.0.1,::1 -s 7667 127.0.0.1,::1
RouterConsoleRunner 7657 127.0.0.1,::1 -s 7667 127.0.0.1,::1 ./webapps/ |
UpdateHandler(RouterContext ctx)UpdateHandler. |
WrapperListener(RouterContext ctx)Wrapper must be 3.2.0 or higher, or will throw class not found error. |
| Modifier and Type | Method and Description |
|---|---|
(package private) static Collection<App> | HomeHelper.buildApps(RouterContext ctx,
String config)Context. |
static boolean | ConfigRestartBean.isRestarting(RouterContext ctx)Check if the router is restarting. |
static boolean | ConfigRestartBean.isShuttingDown(RouterContext ctx)Check if the router is shutting down. |
static void | SybilRenderer.renderSybilHTML(Writer out,
RouterContext ctx,
List<Hash> sybils,
String victim)Called from NetDbRenderer |
(package private) static void | HomeHelper.saveApps(RouterContext ctx,
String prop,
Collection<App> apps,
boolean full)Context. |
(package private) static void | SidebarHelper.saveSummaryBarSections(RouterContext ctx,
String page,
Map<Integer,String> sections)Save the summary bar section order to router config |
static void | NetDbCachingJob.schedule(RouterContext ctx)Schedule this job to run periodically. |
void | LogsHelper.setContext(RouterContext context)setContext. |
| Constructor and Description |
|---|
BanlistRenderer(RouterContext context)Constructor. |
NetDbCachingJob(RouterContext ctx,
boolean reverseDnsEnabled,
boolean introducerEnabled)NetDbCachingJob. |
NetDbRenderer(RouterContext ctx)Construct a new instance. |
ProfileOrganizerRenderer(ProfileOrganizer organizer,
RouterContext context)Creates a new ProfileOrganizerRenderer |
ReseedHandler(RouterContext ctx)ReseedHandler. |
SidebarRenderer(RouterContext context,
SidebarHelper helper)SidebarRenderer. |
StatsGenerator(RouterContext context)StatsGenerator. |
SybilRenderer(RouterContext ctx)SybilRenderer. |
TunnelRenderer(RouterContext ctx)TunnelRenderer. |