public class TransportManager extends Object implements TransportEventListener
| Modifier and Type | Class and Description |
|---|---|
(package private) static class |
TransportManager.Port
Port configuration for transport protocols.
|
| Modifier and Type | Field and Description |
|---|---|
static boolean |
DEFAULT_ENABLE_UPNP_IPV6 |
static String |
PROP_ENABLE_NTCP
default true
|
static String |
PROP_ENABLE_UDP
default true
|
static String |
PROP_ENABLE_UPNP
default true
|
static String |
PROP_ENABLE_UPNP_IPV6 |
| Constructor and Description |
|---|
TransportManager(RouterContext context) |
| Modifier and Type | Method and Description |
|---|---|
(package private) int |
countActivePeers()
How many peers are we currently connected to, that we have
sent a message to or received a message from in the last five minutes.
|
(package private) int |
countActiveSendPeers()
How many peers are we currently connected to, that we have
sent a message to in the last minute.
|
(package private) void |
externalAddressReceived(Transport.AddressSource source,
byte[] ip,
int port)
Initialize from interfaces, and callback from UPnP or SSU.
|
(package private) void |
externalAddressRemoved(Transport.AddressSource source,
boolean ipv6)
Remove all ipv4 or ipv6 addresses.
|
(package private) void |
forceDisconnect(Hash peer)
Tell the transports to disconnect from this peer.
|
(package private) void |
forwardPortStatus(String style,
byte[] ip,
int port,
int externalPort,
boolean success,
String reason)
callback from UPnP
|
(package private) List<RouterAddress> |
getAddresses()
This forces a rebuild
|
(package private) TransportBid |
getBid(OutNetMessage msg) |
(package private) List<TransportBid> |
getBids(OutNetMessage msg) |
(package private) List<Long> |
getClockSkews()
Return our peer clock skews on all transports.
|
List<Hash> |
getEstablished()
Get list of peers with established connections across all transports.
|
byte[] |
getIP(Hash peer)
IP of the peer from the last connection (in or out, any transport).
|
(package private) List<String> |
getMostRecentErrorMessages() |
(package private) TransportBid |
getNextBid(OutNetMessage msg) |
(package private) CommSystemFacade.Status |
getReachabilityStatus()
Previously returned short, now enum as of 0.9.20
|
(package private) Transport |
getTransport(String style) |
(package private) int |
getTransportCount() |
(package private) SortedMap<String,Transport> |
getTransports() |
(package private) X25519KeyFactory |
getXDHFactory()
Get the X25519 key factory used by transports.
|
(package private) boolean |
haveHighOutboundCapacity()
Are all transports well below their outbound connection limit
Use for throttling in the router.
|
(package private) boolean |
haveInboundCapacity(int pct)
Is at least one transport below its inbound connection limit + some margin
Use for throttling in the router.
|
(package private) boolean |
haveOutboundCapacity(int pct)
Is at least one transport below its outbound connection limit + some margin
Use for throttling in the router.
|
(package private) void |
initializeAddress()
Notify all transports of ALL routable interface addresses, including IPv6.
|
(package private) boolean |
isBacklogged(Hash peer) |
(package private) boolean |
isEstablished(Hash peer) |
static boolean |
isNTCPEnabled(RouterContext ctx) |
(package private) void |
mayDisconnect(Hash peer)
Tell the transports that we may disconnect from this peer.
|
void |
messageReceived(I2NPMessage message,
RouterIdentity fromRouter,
Hash fromRouterHash)
Handle incoming I2NP message from a peer.
|
(package private) void |
registerAndStart(Transport t)
Register and start a pluggable transport.
|
void |
renderStatusHTML(Writer out,
String urlBase,
int sortFlags)
Render transport status information as HTML for console display.
|
(package private) void |
restart() |
(package private) void |
shutdown()
Cannot be restarted.
|
(package private) void |
startListening() |
(package private) void |
stopAndUnregister(Transport t)
Stop and unregister a pluggable transport.
|
(package private) void |
stopListening()
Can be restarted.
|
void |
transportAddressChanged()
Handle transport address change notifications.
|
(package private) boolean |
wasUnreachable(Hash peer)
Was the peer UNreachable (outbound only) on any transport,
based on the last time we tried it for each transport?
This is NOT reset if the peer contacts us.
|
public static final boolean DEFAULT_ENABLE_UPNP_IPV6
public static final String PROP_ENABLE_NTCP
public static final String PROP_ENABLE_UDP
public static final String PROP_ENABLE_UPNP
public static final String PROP_ENABLE_UPNP_IPV6
public TransportManager(RouterContext context)
int countActivePeers()
int countActiveSendPeers()
void externalAddressReceived(Transport.AddressSource source, byte[] ip, int port)
void externalAddressRemoved(Transport.AddressSource source, boolean ipv6)
void forceDisconnect(Hash peer)
void forwardPortStatus(String style, byte[] ip, int port, int externalPort, boolean success, String reason)
List<RouterAddress> getAddresses()
TransportBid getBid(OutNetMessage msg)
List<TransportBid> getBids(OutNetMessage msg)
List<Long> getClockSkews()
public List<Hash> getEstablished()
public byte[] getIP(Hash peer)
TransportBid getNextBid(OutNetMessage msg)
CommSystemFacade.Status getReachabilityStatus()
int getTransportCount()
SortedMap<String,Transport> getTransports()
X25519KeyFactory getXDHFactory()
boolean haveHighOutboundCapacity()
boolean haveInboundCapacity(int pct)
pct - percent of limit 0-100boolean haveOutboundCapacity(int pct)
pct - percent of limit 0-100void initializeAddress()
boolean isBacklogged(Hash peer)
boolean isEstablished(Hash peer)
public static boolean isNTCPEnabled(RouterContext ctx)
void mayDisconnect(Hash peer)
public void messageReceived(I2NPMessage message, RouterIdentity fromRouter, Hash fromRouterHash)
messageReceived in interface TransportEventListenermessage - the received I2NP message to be processedfromRouter - identity of the sending routerfromRouterHash - hash of the sending router for quick lookupvoid registerAndStart(Transport t)
t - the transport to register and startIllegalArgumentException - if transport is built-in typeIllegalStateException - if transport style already existspublic void renderStatusHTML(Writer out, String urlBase, int sortFlags) throws IOException
out - writer to write HTML output tourlBase - base URL for generating linkssortFlags - flags controlling sorting and display optionsIOException - if writing to output failsvoid restart()
void shutdown()
void startListening()
void stopAndUnregister(Transport t)
t - the transport to stop and unregisterIllegalArgumentException - if transport is built-in typevoid stopListening()
public void transportAddressChanged()
transportAddressChanged in interface TransportEventListenerboolean wasUnreachable(Hash peer)