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 and Description |
---|---|
static boolean |
DatabaseLookupMessage.supportsEncryptedReplies(RouterInfo to)
Does this router support encrypted replies?
|
Constructor and Description |
---|
RouterInfo(RouterInfo old)
Used only by Router and PublishLocalRouterInfoJob.
|
Modifier and Type | Method and 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 and Description |
---|---|
Set<RouterInfo> |
NetworkDatabaseFacade.getRouters()
public for NetDbRenderer in routerconsole
|
Modifier and Type | Method and 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 and Description |
---|
OutNetMessage(RouterContext context,
I2NPMessage msg,
long expiration,
int priority,
RouterInfo target)
Standard constructor
|
Modifier and Type | Method and 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 and Description |
---|---|
RouterInfo |
DummyNetworkDatabaseFacade.lookupRouterInfoLocally(Hash key) |
RouterInfo |
DummyNetworkDatabaseFacade.store(Hash key,
RouterInfo routerInfo) |
Modifier and Type | Method and Description |
---|---|
void |
DummyNetworkDatabaseFacade.publish(RouterInfo localRouterInfo) |
RouterInfo |
DummyNetworkDatabaseFacade.store(Hash key,
RouterInfo routerInfo) |
Modifier and Type | Method and Description |
---|---|
RouterInfo |
GarlicConfig.getRecipient() |
Modifier and Type | Method and 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 and 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 and Description |
---|---|
List<RouterInfo> |
FloodfillNetworkDatabaseFacade.getKnownRouterData() |
Set<RouterInfo> |
KademliaNetworkDatabaseFacade.getRouters()
public for NetDbRenderer in routerconsole
|
Modifier and Type | Method and 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
|
RouterInfo |
KademliaNetworkDatabaseFacade.store(Hash key,
RouterInfo routerInfo)
Store the routerInfo.
|
(package private) RouterInfo |
KademliaNetworkDatabaseFacade.store(Hash key,
RouterInfo routerInfo,
boolean persist)
Store the routerInfo.
|
static boolean |
StoreJob.supportsBigLeaseSets(RouterInfo ri)
Does he support more than 6 leasesets?
|
static boolean |
StoreJob.supportsCert(RouterInfo ri,
Certificate cert)
Does this router understand this cert?
|
(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 and 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 and 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 and 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 and Description |
---|---|
TransportBid |
NTCPTransport.bid(RouterInfo toAddress,
long dataSize) |
Modifier and Type | Method and 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 and Description |
---|---|
static boolean |
TunnelPeerSelector.shouldExclude(RouterContext ctx,
RouterInfo peer)
warning, this is also called by ProfileOrganizer.isSelectable()
|
Constructor and 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.
|