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.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.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.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.
|
Constructor and Description |
---|
I2NPMessageReader(RouterContext context,
InputStream stream,
I2NPMessageReader.I2NPMessageEventListener lsnr)
Deprecated.
|
I2NPMessageReader(RouterContext context,
InputStream stream,
I2NPMessageReader.I2NPMessageEventListener lsnr,
String name)
Deprecated.
|
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.
|
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 | Field and Description |
---|---|
protected RouterContext |
ClientListenerRunner._context |
protected RouterContext |
ClientConnectionRunner._context |
protected RouterContext |
ClientMessageEventListener._context |
protected RouterContext |
ClientManager._ctx |
Constructor and Description |
---|
FamilyKeyCrypto(RouterContext context)
For signing and verification.
|
Constructor and Description |
---|
DummyClientManagerFacade(RouterContext ctx) |
DummyNetworkDatabaseFacade(RouterContext ctx) |
VMCommSystem(RouterContext context) |
Modifier and Type | Method and Description |
---|---|
static GarlicMessage |
GarlicMessageBuilder.buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
int numTagsToDeliver,
int lowTagsThreshold,
SessionKeyManager skm)
called by netdb and above
|
static GarlicMessage |
GarlicMessageBuilder.buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
int numTagsToDeliver,
SessionKeyManager skm)
called by OCMJH
|
static GarlicMessage |
GarlicMessageBuilder.buildMessage(RouterContext ctx,
GarlicConfig config,
SessionKey wrappedKey,
Set<SessionTag> wrappedTags,
PublicKey target,
SessionKey encryptKey,
SessionTag encryptTag)
used by TestJob and directly above
and for encrypting DatabaseLookupMessages
|
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.
|
(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)
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) |
Constructor and Description |
---|
HandleDatabaseLookupMessageJob(RouterContext ctx,
DatabaseLookupMessage receivedMessage,
RouterIdentity from,
Hash fromHash) |
PublishLocalRouterInfoJob(RouterContext ctx) |
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
PeerSelector._context |
protected RouterContext |
KademliaNetworkDatabaseFacade._context |
protected RouterContext |
TransientDataStore._context |
Modifier and Type | Method and Description |
---|---|
static MessageWrapper.OneTimeSession |
MessageWrapper.generateSession(RouterContext ctx)
Create a single key and tag, for receiving a single encrypted message,
and register it with the router's session key manager, to expire in two minutes.
|
static MessageWrapper.OneTimeSession |
MessageWrapper.generateSession(RouterContext ctx,
Hash localDest)
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 two minutes.
|
static MessageWrapper.OneTimeSession |
MessageWrapper.generateSession(RouterContext ctx,
SessionKeyManager skm)
Create a single key and tag, for receiving a single encrypted message,
and register it with the given session key manager, to expire in two minutes.
|
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.
|
(package private) 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,
SessionTag encryptTag)
Garlic wrap a message from nobody, destined for an unknown router,
to hide the contents from the IBGW.
|
Constructor and Description |
---|
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 | Method and Description |
---|---|
(package private) static Certificate |
CreateRouterInfoJob.createCertificate(RouterContext ctx,
SigningPublicKey spk)
Only called at startup via LoadRouterInfoJob and RebuildRouterInfoJob.
|
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 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.
|
static void |
ClientAppConfig.writeClientAppConfig(RouterContext ctx,
List<ClientAppConfig> apps)
classpath and stopargs not supported
|
Constructor and Description |
---|
BootCommSystemJob(RouterContext context) |
BootNetworkDbJob(RouterContext ctx) |
BootPeerManagerJob(RouterContext ctx) |
BuildTrustedLinksJob(RouterContext context,
Job next) |
CreateRouterInfoJob(RouterContext ctx,
Job next) |
LoadClientAppsJob.DelayedRunClient(SimpleTimer2 pool,
RouterContext enclosingContext,
String className,
String clientName,
String[] args)
caller MUST call schedule()
|
LoadClientAppsJob.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 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) |
Constructor and Description |
---|
CommSystemFacadeImpl(RouterContext context) |
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) |
Constructor and Description |
---|
EstablishState(RouterContext ctx,
NTCPTransport transport,
NTCPConnection con) |
EventPumper(RouterContext ctx,
NTCPTransport transport) |
NTCPConnection(RouterContext ctx,
NTCPTransport transport,
RouterIdentity remotePeer,
RouterAddress remAddr)
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) |
Reader(RouterContext ctx) |
Writer(RouterContext ctx) |
Modifier and Type | Method and Description |
---|---|
static UDPPacket |
UDPPacket.acquire(RouterContext ctx,
boolean inbound) |
static int |
UDPEndpoint.selectRandomPort(RouterContext ctx)
Pick a random port between the configured boundaries
|
Modifier and Type | Field and Description |
---|---|
protected RouterContext |
FragmentHandler._context |
protected RouterContext |
TunnelCreatorConfig._context |
protected RouterContext |
TunnelGateway._context |
protected RouterContext |
TrivialPreprocessor._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 |
TunnelPeerSelector.ctx |
Modifier and Type | Method and Description |
---|---|
static boolean |
BuildRequestor.request(RouterContext ctx,
TunnelPool pool,
PooledTunnelCreatorConfig cfg,
BuildExecutor exec)
Send out a build request message.
|
static boolean |
TunnelPeerSelector.shouldExclude(RouterContext ctx,
RouterInfo peer)
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 |
FormHandler._context |
protected RouterContext |
UpdateHandler._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.
|
(package private) static Collection<HomeHelper.App> |
HomeHelper.buildApps(RouterContext ctx,
String config) |
(package private) static boolean |
PluginStarter.deletePlugin(RouterContext ctx,
String appName) |
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) |
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 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<HomeHelper.App> apps,
boolean full) |
(package private) static void |
SummaryHelper.saveSummaryBarSections(RouterContext ctx,
String page,
Map<Integer,String> sections) |
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
|
(package private) static void |
WebAppStarter.startWebApp(RouterContext ctx,
ContextHandlerCollection server,
String appName,
String warPath)
Adds and starts.
|
static String |
NewsHelper.status(RouterContext ctx) |
static boolean |
PluginStarter.stopPlugin(RouterContext ctx,
String appName) |
static void |
RouterConsoleRunner.storeWebAppProperties(RouterContext ctx,
Properties props) |
(package private) static void |
PluginStarter.updateAll(RouterContext ctx)
threaded
|
static ConsoleUpdateManager |
UpdateHandler.updateManager(RouterContext ctx) |
Constructor and Description |
---|
BanlistRenderer(RouterContext context) |
ConsolePasswordManager(RouterContext ctx) |
NetDbRenderer(RouterContext ctx) |
PluginStarter(RouterContext ctx) |
PluginStopper(RouterContext ctx) |
ProfileOrganizerRenderer(ProfileOrganizer organizer,
RouterContext context) |
ReseedBundler(RouterContext ctx) |
ReseedHandler(RouterContext ctx) |
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/
|
StatsGenerator(RouterContext context) |
SummaryBarRenderer(RouterContext context,
SummaryHelper helper) |
SybilRenderer(RouterContext ctx) |
TunnelRenderer(RouterContext ctx) |
UpdateHandler(RouterContext ctx) |
WrapperListener(RouterContext ctx)
Wrapper must be 3.2.0 or higher, or will throw class not found error.
|