Package | Description |
---|---|
net.i2p.data.i2np |
This package defines the low-level messages sent between routers,
called the Invisible Internet Network Protocol (I2NP).
|
net.i2p.desktopgui |
Desktopgui is a graphical interface to I2P that allows managing the lifecycle of I2P from the system tray.
|
net.i2p.desktopgui.router | |
net.i2p.i2pcontrol | |
net.i2p.i2pcontrol.servlets | |
net.i2p.i2pcontrol.servlets.jsonrpc2handlers | |
net.i2p.router |
The I2P router application handles the I2P network communication.
|
net.i2p.router.client |
Implements the router side of the I2CP interface,
which is the API for applications to send and receive data through the router.
|
net.i2p.router.crypto |
Classes formerly in net.i2p.crypto but moved here as they are only used by the router.
|
net.i2p.router.crypto.ratchet |
Implementation of ECIES-X25519-AEAD-Ratchet (proposal 144).
|
net.i2p.router.dummy |
Dummy versions of things for testing.
|
net.i2p.router.message |
Creates and parses garlic messages.
|
net.i2p.router.networkdb |
A couple of classes, but most things are in kademlia.
|
net.i2p.router.networkdb.kademlia |
The network database, including implementation of floodfills.
|
net.i2p.router.networkdb.reseed |
Fetching, validation, unpacking, and installation of RouterInfos from
signed su3 files, unsigned zip files, and web indexes.
|
net.i2p.router.peermanager |
The peer manager logs information about the history and quality of network peers.
|
net.i2p.router.startup |
The I2P startup package loads the configuration when I2P is started.
|
net.i2p.router.sybil |
Classes to run offline Sybil analysis, and to
store and load the results.
|
net.i2p.router.tasks |
Miscellaneous classes, mostly things that are executed periodically as
Jobs, Threads, and SimpleTimer.TimedEvents.
|
net.i2p.router.transport |
The transport system allows the usage of communication layers that are below I2P in the stack, on which I2P messages are sent.
|
net.i2p.router.transport.ntcp |
The NTCP transport allows passing I2P messages on top of TCP.
|
net.i2p.router.transport.udp |
The UDP transport (also known as 'SSU transport') allows passing I2P messages on top of UDP.
|
net.i2p.router.tunnel |
All the work of managing locally created and participating tunnels,
creating and handling tunnel messages, and their encryption.
|
net.i2p.router.tunnel.pool |
Tunnel creation, tunnel build message handling.
|
net.i2p.router.update |
Classes to implement the update process.
|
net.i2p.router.util |
These classes define the several useful utilities used
throughout the 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)
Encrypt the record to the specified peer.
|
Constructor and Description |
---|
BuildRequestRecord(RouterContext ctx,
PrivateKey ourKey,
EncryptedBuildRecord encryptedRecord)
Decrypt the data from the specified record, writing the decrypted record into this instance's
data buffer
Caller MUST check that first 16 bytes of our hash matches first 16 bytes of encryptedRecord
before calling this.
|
Constructor and Description |
---|
InternalTrayManager(RouterContext ctx,
Main main,
boolean useSwing) |
Main(RouterContext ctx,
ClientAppManager mgr,
String[] args) |
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.
|
static void |
RouterManager.restartGracefully(RouterContext ctx)
Restart the running I2P instance.
|
static void |
RouterManager.shutDown(RouterContext ctx)
Stop the running I2P instance.
|
static void |
RouterManager.shutDownGracefully(RouterContext ctx)
Stop the running I2P instance.
|
Constructor and Description |
---|
I2PControlController(RouterContext ctx,
ClientAppManager mgr,
String[] args)
RouterApp (new way)
|
SocketController(RouterContext ctx,
ClientAppManager mgr,
String[] args)
RouterApp (new way)
|
Constructor and Description |
---|
JSONRPC2Servlet(RouterContext ctx,
SecurityManager secMan)
Plugin
|
Constructor and Description |
---|
AdvancedSettingsHandler(RouterContext ctx,
JSONRPC2Helper helper) |
I2PControlHandler(RouterContext ctx,
JSONRPC2Helper helper,
SecurityManager secMan) |
NetworkSettingHandler(RouterContext ctx,
JSONRPC2Helper helper) |
RouterInfoHandler(RouterContext ctx,
JSONRPC2Helper helper) |
RouterManagerHandler(RouterContext ctx,
JSONRPC2Helper helper) |
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
RouterThrottleImpl._context |
Modifier and Type | Method and Description |
---|---|
RouterContext |
JobImpl.getContext() |
RouterContext |
Router.getContext()
Non-null, but take care when accessing context items before runRouter() is called
as the context will not be initialized.
|
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 |
---|---|
(package private) static boolean |
RouterContext.setGlobalContext(RouterContext ctx)
Sets the default context, unless there is one already.
|
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
ClientConnectionRunner._context |
protected RouterContext |
ClientListenerRunner._context |
protected RouterContext |
ClientMessageEventListener._context |
protected RouterContext |
ClientManager._ctx |
Constructor and Description |
---|
FamilyKeyCrypto(RouterContext context)
For signing and verification.
|
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
RatchetSKM._context |
Constructor and Description |
---|
ACKTimer(RouterContext context,
Destination from,
Destination to)
Caller must schedule
|
ECIESAEADEngine(RouterContext ctx)
Caller MUST call startup() to get threaded generation.
|
Elg2KeyFactory(RouterContext ctx) |
MuxedEngine(RouterContext ctx) |
RatchetSKM(RouterContext context)
For the router SKM only.
|
RatchetSKM(RouterContext context,
Destination dest)
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 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.
|
static GarlicMessage |
GarlicMessageBuilder.buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
SessionKeyManager skm)
Now unused, since we have to generate a reply token first in OCMOSJ but we don't know if tags are required yet.
|
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.
|
Constructor and Description |
---|
GarlicMessageHandler(RouterContext context) |
GarlicMessageHandler(RouterContext context,
long msgIDBloomXorLocal,
long msgIDBloomXorRouter,
long msgIDBloomXorTunnel) |
GarlicMessageParser(RouterContext context) |
GarlicMessageReceiver(RouterContext context,
GarlicMessageReceiver.CloveReceiver receiver) |
GarlicMessageReceiver(RouterContext context,
GarlicMessageReceiver.CloveReceiver receiver,
Hash clientDestination) |
HandleGarlicMessageJob(RouterContext context,
GarlicMessage msg,
RouterIdentity from,
Hash fromHash,
long msgIDBloomXorLocal,
long msgIDBloomXorRouter,
long msgIDBloomXorTunnel) |
OutboundCache(RouterContext ctx) |
OutboundClientMessageOneShotJob(RouterContext ctx,
OutboundCache cache,
ClientMessage msg)
Send it.
|
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
int timeoutMs,
int priority) |
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
int timeoutMs,
int priority,
long msgIDBloomXor) |
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
Job onSend,
ReplyJob onSuccess,
Job onFail,
MessageSelector selector,
int timeoutMs,
int priority,
long msgIDBloomXor) |
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
ReplyJob onSuccess,
Job onFail,
MessageSelector selector,
int timeoutMs,
int priority) |
SendMessageDirectJob(RouterContext ctx,
I2NPMessage message,
Hash toPeer,
ReplyJob onSuccess,
Job onFail,
MessageSelector selector,
int timeoutMs,
int priority,
long msgIDBloomXor) |
Constructor and Description |
---|
HandleDatabaseLookupMessageJob(RouterContext ctx,
DatabaseLookupMessage receivedMessage,
RouterIdentity from,
Hash fromHash,
long msgIDBloomXor) |
PublishLocalRouterInfoJob(RouterContext ctx) |
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
KademliaNetworkDatabaseFacade._context |
protected RouterContext |
PeerSelector._context |
protected RouterContext |
TransientDataStore._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.
|
(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
|
(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 |
---|
ReseedBundler(RouterContext ctx) |
ReseedChecker(RouterContext context)
All reseeding must be done through this instance.
|
Reseeder(RouterContext ctx,
ReseedChecker rc) |
Modifier and Type | Method and Description |
---|---|
(package private) RouterContext |
PeerProfile.getContext()
Helper for calculators
|
Constructor and Description |
---|
DBHistory(RouterContext context,
String statGroup) |
PeerManager(RouterContext context)
Profiles are now loaded in a separate thread,
so this should return quickly.
|
PeerManagerFacadeImpl(RouterContext ctx) |
PeerProfile(RouterContext context,
Hash peer)
Caller should call setLastHeardAbout() and setFirstHeardAbout()
|
PeerTestJob(RouterContext context)
Creates a new instance of PeerTestJob
|
ProfileManagerImpl(RouterContext context) |
ProfileOrganizer(RouterContext context) |
ProfilePersistenceHelper(RouterContext ctx) |
TunnelHistory(RouterContext context,
String statGroup) |
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
LoadClientAppsJob.DelayedRunClient._ctx |
Modifier and Type | Method and Description |
---|---|
static List<ClientAppConfig> |
ClientAppConfig.getClientApps(RouterContext ctx) |
(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) |
BootNetworkDbJob(RouterContext ctx) |
BootPeerManagerJob(RouterContext ctx) |
BuildTrustedLinksJob(RouterContext context,
Job next) |
CreateRouterInfoJob(RouterContext ctx,
Job next) |
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) |
LoadRouterInfoJob(RouterContext ctx) |
RebuildRouterInfoJob(RouterContext context) |
RouterAppManager(RouterContext ctx) |
StartAcceptingClientsJob(RouterContext context) |
StartupJob(RouterContext context) |
Modifier and Type | Method and Description |
---|---|
static Analysis |
Analysis.getInstance(RouterContext ctx) |
Modifier and Type | Method and Description |
---|---|
static void |
BasePerms.fix(RouterContext ctx) |
static String |
OOMListener.getWrapperConfigPath(RouterContext ctx)
Best guess of wrapper.config path.
|
static void |
CryptoChecker.warnUnavailableCrypto(RouterContext ctx) |
Constructor and Description |
---|
CoalesceStatsEvent(RouterContext ctx) |
GracefulShutdown(RouterContext ctx) |
OOMListener(RouterContext ctx) |
PersistRouterInfoJob(RouterContext ctx) |
ReadConfigJob(RouterContext ctx) |
Republish(RouterContext ctx) |
Restarter(RouterContext ctx) |
RouterWatchdog(RouterContext ctx) |
ShutdownHook(RouterContext ctx) |
UpdateRoutingKeyModifierJob(RouterContext ctx) |
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
TransportImpl._context |
Modifier and Type | Method and Description |
---|---|
(package private) static void |
GetBidsJob.fail(RouterContext context,
OutNetMessage msg) |
(package private) static void |
GetBidsJob.getBids(RouterContext context,
TransportManager tmgr,
OutNetMessage msg) |
static TransportUtil.IPv6Config |
TransportUtil.getIPv6Config(RouterContext ctx,
String transportStyle) |
static boolean |
TransportUtil.isIPv4Firewalled(RouterContext ctx,
String transportStyle)
This returns true if the force-firewalled setting is configured, false otherwise.
|
static boolean |
TransportUtil.isIPv6Firewalled(RouterContext ctx,
String transportStyle)
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) |
FIFOBandwidthLimiter(RouterContext context) |
FIFOBandwidthRefiller(RouterContext context,
FIFOBandwidthLimiter limiter) |
GetBidsJob(RouterContext ctx,
TransportManager tmgr,
OutNetMessage msg)
Deprecated.
unused, see static getBids()
|
OutboundMessageRegistry(RouterContext context) |
TransportImpl(RouterContext context)
Initialize the new transport
|
TransportManager(RouterContext context) |
UPnPManager(RouterContext context,
TransportManager manager) |
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
EstablishBase._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) |
EventPumper(RouterContext ctx,
NTCPTransport transport) |
InboundEstablishState(RouterContext ctx,
NTCPTransport transport,
NTCPConnection con) |
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,
DHSessionKeyBuilder.Factory dh,
X25519KeyFactory xdh) |
OutboundNTCP2State(RouterContext ctx,
NTCPTransport transport,
NTCPConnection con) |
Reader(RouterContext ctx) |
Writer(RouterContext ctx) |
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
InboundEstablishState._context |
protected RouterContext |
PeerState._context |
protected RouterContext |
OutboundEstablishState._context |
Modifier and Type | Method and Description |
---|---|
static UDPPacket |
UDPPacket.acquire(RouterContext ctx,
boolean inbound) |
Constructor and Description |
---|
EstablishmentManager(RouterContext ctx,
UDPTransport transport) |
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) |
InboundMessageState(RouterContext ctx,
long messageId,
Hash from)
Only for Poison right now.
|
InboundMessageState(RouterContext ctx,
long messageId,
Hash from,
byte[] data,
int off,
int len,
int fragmentNum,
boolean isLast)
Create a new IMS and read in the data from the fragment.
|
IntroductionManager(RouterContext ctx,
UDPTransport transport) |
MessageReceiver(RouterContext ctx,
UDPTransport transport) |
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)
Prepare to start a new handshake with the given peer.
|
OutboundMessageFragments(RouterContext ctx,
UDPTransport transport,
OutboundMessageFragments.ActiveThrottle throttle) |
OutboundRefiller(RouterContext ctx,
OutboundMessageFragments fragments,
MessageQueue messages) |
PacketBuilder2(RouterContext ctx,
UDPTransport transport)
No state, all methods are thread-safe.
|
PacketHandler(RouterContext ctx,
UDPTransport transport,
boolean enableSSU1,
boolean enableSSU2,
EstablishmentManager establisher,
InboundMessageFragments inbound,
PeerTestManager testManager,
IntroductionManager introManager) |
PacketPusher(RouterContext ctx,
OutboundMessageFragments fragments,
List<UDPEndpoint> endpoints) |
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) |
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
|
TimedWeightedPriorityMessageQueue(RouterContext ctx,
int[] priorityLimits,
int[] weighting,
TimedWeightedPriorityMessageQueue.FailedListener lsnr)
Build up a new queue
|
UDPEndpoint(RouterContext ctx,
UDPTransport transport,
int listenPort,
InetAddress bindAddress) |
UDPReceiver(RouterContext ctx,
UDPTransport transport,
DatagramSocket socket,
String name,
SocketListener lsnr) |
UDPSender(RouterContext ctx,
DatagramSocket socket,
String name,
SocketListener lsnr) |
UDPTransport(RouterContext ctx,
X25519KeyFactory xdh) |
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
TrivialPreprocessor._context |
protected RouterContext |
TunnelGateway._context |
protected RouterContext |
TunnelCreatorConfig._context |
protected RouterContext |
FragmentHandler._context |
Modifier and Type | Method and Description |
---|---|
static int |
TunnelDispatcher.getShareBandwidth(RouterContext ctx) |
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
TunnelPool._context |
protected RouterContext |
ConnectChecker.ctx |
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)
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 boolean |
BuildRequestor.request(RouterContext ctx,
PooledTunnelCreatorConfig cfg,
BuildExecutor exec)
Send out a build request message.
|
static boolean |
TunnelPeerSelector.shouldExclude(RouterContext ctx,
RouterInfo peer)
Should the peer be excluded based on its published caps?
Warning, this is also called by ProfileOrganizer.isSelectable()
|
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
UpdateHandler._context |
protected RouterContext |
UpdateRunner._context |
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
RouterPasswordManager._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)
// migrate these to b64
private static final String[] MIGRATE_FROM = {
// This has a separate router.reseedProxy.username prop,
// so let's not mess with it
"router.reseedProxy.password",
// Don't migrate these until we have a console form for them,
// which we aren't likely to ever bother with
"routerconsole.keyPassword",
"routerconsole.keystorePassword",
"i2cp.keyPassword",
"i2cp.keystorePassword"
};
private static final String[] MIGRATE_TO = {
"router.reseedProxy.auth",
"routerconsole.ssl.key.auth",
"routerconsole.ssl.keystore.auth",
"i2cp.ssl.key.auth",
"i2cp.ssl.keystore.auth"
};
|
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
UpdateHandler._context |
protected RouterContext |
FormHandler._context |
protected RouterContext |
HelperBase._context |
protected RouterContext |
PluginStarter._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) |
static boolean |
NewsHelper.dontInstall(RouterContext ctx) |
(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) |
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) |
static void |
PluginStarter.updateAll(RouterContext ctx)
threaded
|
static ConsoleUpdateManager |
UpdateHandler.updateManager(RouterContext ctx) |
Constructor and Description |
---|
ConsolePasswordManager(RouterContext ctx) |
DeadlockDetector(RouterContext ctx) |
PluginStarter(RouterContext ctx) |
PluginStopper(RouterContext ctx,
Server server) |
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/
|
StatSummarizer(RouterContext ctx) |
UpdateHandler(RouterContext ctx) |
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) |
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) |
(package private) static void |
SummaryHelper.saveSummaryBarSections(RouterContext ctx,
String page,
Map<Integer,String> sections) |
Constructor and Description |
---|
BanlistRenderer(RouterContext context) |
NetDbRenderer(RouterContext ctx) |
ProfileOrganizerRenderer(ProfileOrganizer organizer,
RouterContext context) |
ReseedHandler(RouterContext ctx) |
StatsGenerator(RouterContext context) |
SummaryBarRenderer(RouterContext context,
SummaryHelper helper) |
SybilRenderer(RouterContext ctx) |
TunnelRenderer(RouterContext ctx) |