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.data.router |
Classes formerly in net.i2p.data but moved here as they are only used by the router.
|
net.i2p.router |
The I2P router application handles the I2P network communication.
|
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.kademlia |
The network database, including implementation of floodfills.
|
net.i2p.router.startup |
The I2P startup package loads the configuration when I2P is started.
|
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.pool |
Tunnel creation, tunnel build message handling.
|
net.i2p.router.util |
These classes define the several useful utilities used
throughout the router.
|
Modifier and Type | Method | Description |
---|---|---|
static boolean |
DatabaseLookupMessage.supportsEncryptedReplies(RouterInfo to) |
Does this router support encrypted replies?
|
Constructor | Description |
---|---|
RouterInfo(RouterInfo old) |
Used only by Router and PublishLocalRouterInfoJob.
|
Modifier and Type | Method | Description |
---|---|---|
RouterInfo |
Router.getRouterInfo() |
Our current router info.
|
RouterInfo |
OutNetMessage.getTarget() |
Specifies the router to which the message should be delivered.
|
abstract RouterInfo |
NetworkDatabaseFacade.lookupRouterInfoLocally(Hash key) |
|
abstract RouterInfo |
NetworkDatabaseFacade.store(Hash key,
RouterInfo routerInfo) |
Modifier and Type | Method | Description |
---|---|---|
Set<RouterInfo> |
NetworkDatabaseFacade.getRouters() |
public for NetDbRenderer in routerconsole
|
Modifier and Type | Method | Description |
---|---|---|
boolean |
Blocklist.isBlocklisted(RouterInfo pinfo) |
Does the peer's IP address appear in the blocklist?
If so, and it isn't banlisted, banlist it forever...
|
boolean |
CommSystemFacade.isInBadCountry(RouterInfo ri) |
|
abstract void |
NetworkDatabaseFacade.publish(RouterInfo localRouterInfo) |
|
void |
Router.setRouterInfo(RouterInfo info) |
Caller must ensure info is valid - no validation done here.
|
abstract RouterInfo |
NetworkDatabaseFacade.store(Hash key,
RouterInfo routerInfo) |
Constructor | Description |
---|---|
OutNetMessage(RouterContext context,
I2NPMessage msg,
long expiration,
int priority,
RouterInfo target) |
Standard constructor
|
Modifier and Type | Method | Description |
---|---|---|
boolean |
FamilyKeyCrypto.verify(RouterInfo ri) |
Verify the family signature in a RouterInfo.
|
boolean |
FamilyKeyCrypto.verifyOurFamily(RouterInfo ri) |
Verify the family in a RouterInfo matches ours and the signature is good.
|
Modifier and Type | Method | Description |
---|---|---|
RouterInfo |
DummyNetworkDatabaseFacade.lookupRouterInfoLocally(Hash key) |
|
RouterInfo |
DummyNetworkDatabaseFacade.store(Hash key,
RouterInfo routerInfo) |
Modifier and Type | Method | Description |
---|---|---|
void |
DummyNetworkDatabaseFacade.publish(RouterInfo localRouterInfo) |
|
RouterInfo |
DummyNetworkDatabaseFacade.store(Hash key,
RouterInfo routerInfo) |
Modifier and Type | Method | Description |
---|---|---|
RouterInfo |
GarlicConfig.getRecipient() |
Modifier and Type | Method | Description |
---|---|---|
void |
GarlicConfig.setRecipient(RouterInfo info) |
Router to receive and process this clove - the router that will open the
delivery instructions and decide what to do process it locally as an I2NPMessage,
forward it as an I2NPMessage to a router, forward it as an I2NPMessage to a Destination,
or forward it as an I2NPMessage to a tunnel.
|
Modifier and Type | Method | Description |
---|---|---|
RouterInfo |
KademliaNetworkDatabaseFacade.lookupRouterInfoLocally(Hash key) |
|
RouterInfo |
KademliaNetworkDatabaseFacade.store(Hash key,
RouterInfo routerInfo) |
Store the routerInfo.
|
(package private) RouterInfo |
KademliaNetworkDatabaseFacade.store(Hash key,
RouterInfo routerInfo,
boolean persist) |
Store the routerInfo.
|
Modifier and Type | Method | Description |
---|---|---|
List<RouterInfo> |
FloodfillNetworkDatabaseFacade.getKnownRouterData() |
|
Set<RouterInfo> |
KademliaNetworkDatabaseFacade.getRouters() |
public for NetDbRenderer in routerconsole
|
Modifier and Type | Method | Description |
---|---|---|
protected I2NPMessage |
ExploreJob.buildMessage(TunnelId replyTunnelId,
Hash replyGateway,
long expiration,
RouterInfo peer) |
Build the database search message, but unlike the normal searches, we're more explicit in
what we /dont/ want.
|
protected I2NPMessage |
SearchJob.buildMessage(TunnelId replyTunnelId,
Hash replyGateway,
long expiration,
RouterInfo peer) |
Build the database search message
|
static boolean |
FloodfillNetworkDatabaseFacade.isFloodfill(RouterInfo peer) |
|
protected void |
FloodfillNetworkDatabaseFacade.lookupBeforeDropping(Hash peer,
RouterInfo info) |
Search for a newer router info, drop it from the db if the search fails,
unless just started up or have bigger problems.
|
protected void |
KademliaNetworkDatabaseFacade.lookupBeforeDropping(Hash peer,
RouterInfo info) |
don't use directly - see F.N.D.F.
|
void |
FloodfillNetworkDatabaseFacade.publish(RouterInfo localRouterInfo) |
Send our RI to the closest floodfill.
|
void |
KademliaNetworkDatabaseFacade.publish(RouterInfo localRouterInfo) |
Stores to local db only.
|
protected void |
SearchJob.sendLeaseSearch(RouterInfo router) |
we're (probably) searching for a LeaseSet, so to be (overly) cautious, we're sending
the request out through a tunnel w/ reply back through another tunnel.
|
protected void |
SearchJob.sendRouterSearch(RouterInfo router) |
we're searching for a router, so we can just send direct
|
protected void |
SearchJob.sendSearch(RouterInfo router) |
Send a search to the given peer
|
(package private) static boolean |
StoreJob.shouldStoreTo(RouterInfo ri) |
Is it too old?
|
RouterInfo |
KademliaNetworkDatabaseFacade.store(Hash key,
RouterInfo routerInfo) |
Store the routerInfo.
|
(package private) RouterInfo |
KademliaNetworkDatabaseFacade.store(Hash key,
RouterInfo routerInfo,
boolean persist) |
Store the routerInfo.
|
(package private) String |
KademliaNetworkDatabaseFacade.validate(RouterInfo routerInfo) |
Determine whether this routerInfo will be accepted as valid and current
given what we know now.
|
(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.
|
(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.
|
Constructor | Description |
---|---|
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)
|
SearchMessageSelector(RouterContext context,
RouterInfo peer,
long expiration,
SearchState state) |
|
SearchUpdateReplyFoundJob(RouterContext context,
RouterInfo peer,
SearchState state,
KademliaNetworkDatabaseFacade facade,
SearchJob job) |
|
SearchUpdateReplyFoundJob(RouterContext context,
RouterInfo peer,
SearchState state,
KademliaNetworkDatabaseFacade facade,
SearchJob job,
TunnelInfo outTunnel,
TunnelInfo replyTunnel) |
|
StoreMessageSelector(RouterContext ctx,
long storeJobId,
RouterInfo peer,
long waitingForId,
long expiration) |
Modifier and Type | Method | Description |
---|---|---|
(package private) RouterInfo |
CreateRouterInfoJob.createRouterInfo() |
Writes 6 files: router.info (standard RI format),
router.keys.dat, and 4 individual key files under keyBackup/
router.keys.dat file format: This is the
same "eepPriv.dat" format used by the client code,
as documented in PrivateKeyFile.
|
Modifier and Type | Method | Description |
---|---|---|
TransportBid |
Transport.bid(RouterInfo toAddress,
long dataSize) |
|
protected List<RouterAddress> |
TransportImpl.getTargetAddresses(RouterInfo target) |
Get all available address we can use,
shuffled and then sorted by cost/preference.
|
boolean |
CommSystemFacadeImpl.isInBadCountry(RouterInfo ri) |
Are they in a bad place
|
Modifier and Type | Method | Description |
---|---|---|
TransportBid |
NTCPTransport.bid(RouterInfo toAddress,
long dataSize) |
|
void |
NTCP2Payload.PayloadCallback.gotRI(RouterInfo ri,
boolean isHandshake) |
Constructor | Description |
---|---|
RIBlock(RouterInfo ri) |
Modifier and Type | Method | Description |
---|---|---|
TransportBid |
UDPTransport.bid(RouterInfo toAddress,
long dataSize) |
|
(package private) RouterAddress |
UDPTransport.getTargetAddress(RouterInfo target) |
Get first available address we can use.
|
Modifier and Type | Method | Description |
---|---|---|
boolean |
ConnectChecker.canConnect(int ourMask,
RouterInfo to) |
Can we connect to "to" based on published addresses?
This is intended for tunnel candidates, where we already have
the RI.
|
boolean |
ConnectChecker.canConnect(RouterInfo from,
int ourMask) |
Can "from" connect to us based on published addresses?
This is intended for tunnel candidates, where we already have
the RI.
|
int |
ConnectChecker.getInboundMask(RouterInfo us) |
Our inbound mask.
|
int |
ConnectChecker.getOutboundMask(RouterInfo us) |
Our outbound mask.
|
static boolean |
TunnelPeerSelector.shouldExclude(RouterContext ctx,
RouterInfo peer) |
warning, this is also called by ProfileOrganizer.isSelectable()
|
Constructor | Description |
---|---|
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.
|