public abstract class CommSystemFacade extends Object implements Service
| Modifier and Type | Class and Description |
|---|---|
static class |
CommSystemFacade.Status
Network connectivity status enumeration for IPv4 and IPv6 transport capabilities.
|
| Modifier and Type | Field and Description |
|---|---|
protected static String |
ROUTER_BUNDLE_NAME |
static short |
STATUS_DIFFERENT
We are behind a symmetric NAT which will make our 'from' address look
differently when we talk to multiple people
|
static short |
STATUS_DISCONNECTED
We have no network interface at all enabled transports
|
static short |
STATUS_HOSED
Our detection system is broken (SSU bind port failed)
|
static short |
STATUS_IPV4_DISABLED_IPV6_FIREWALLED
We have an IPv6 transport enabled and a public IPv6 address.
|
static short |
STATUS_IPV4_DISABLED_IPV6_OK
We have an IPv6 transport enabled and a public IPv6 address.
|
static short |
STATUS_IPV4_DISABLED_IPV6_UNKNOWN
We have an IPv6 transport enabled and a public IPv6 address.
|
static short |
STATUS_IPV4_FIREWALLED_IPV6_OK
We have an IPv6 transport enabled and a public IPv6 address.
|
static short |
STATUS_IPV4_FIREWALLED_IPV6_UNKNOWN
We have an IPv6 transport enabled and a public IPv6 address.
|
static short |
STATUS_IPV4_OK_IPV6_FIREWALLED
We have an IPv6 transport enabled and a public IPv6 address.
|
static short |
STATUS_IPV4_OK_IPV6_UNKNOWN
We have an IPv6 transport enabled and a public IPv6 address.
|
static short |
STATUS_IPV4_SNAT_IPV6_OK
We are behind a symmetric NAT which will make our 'from' address look
differently when we talk to multiple people
We can receive unsolicited connections on IPv6.
|
static short |
STATUS_IPV4_SNAT_IPV6_UNKNOWN
We are behind a symmetric NAT which will make our 'from' address look
differently when we talk to multiple people
We might be able to receive unsolicited connections on IPv6.
|
static short |
STATUS_IPV4_UNKNOWN_IPV6_FIREWALLED
We have an IPv6 transport enabled and a public IPv6 address.
|
static short |
STATUS_IPV4_UNKNOWN_IPV6_OK
We have an IPv6 transport enabled and a public IPv6 address.
|
static short |
STATUS_OK
These must be increasing in "badness" (see TransportManager.java),
but UNKNOWN must be last.
|
static short |
STATUS_REJECT_UNSOLICITED
We are able to talk to peers that we initiate communication with, but
cannot receive unsolicited connections, i.e.
|
static short |
STATUS_UNKNOWN
Our reachability is unknown on all
|
| Constructor and Description |
|---|
CommSystemFacade() |
| Modifier and Type | Method and Description |
|---|---|
abstract 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.
|
abstract int |
countActiveSendPeers()
How many peers are we currently connected to, that we have
sent a message to in the last minute.
|
List<RouterAddress> |
createAddresses()
Create the list of RouterAddress structures based on the router's config
|
void |
exemptIncoming(Hash peer)
Exempt this router hash from any incoming throttles or rejections
|
void |
forceDisconnect(Hash peer)
Tell the comm system to disconnect from this peer.
|
String |
getCanonicalHostName(String ipAddress) |
String |
getCanonicalHostNameSync(String ipAddress) |
Map<String,String> |
getCountries()
Get the country code map
|
String |
getCountry(Hash peer) |
String |
getCountry(String ip)
Get country code for an IP address
|
String |
getCountryName(String code) |
abstract List<Hash> |
getEstablished()
Get all the peers we are connected to.
|
long |
getFramedAveragePeerClockSkew(int percentToInclude)
Return framed average clock skew of connected peers in seconds, or null if we cannot answer.
|
byte[] |
getIP(Hash dest) |
String |
getLocalizedStatusString()
getStatus().toStatusString(), translated if available.
|
Long |
getMedianPeerClockSkew()
Median clock skew of connected peers in seconds, or null if we cannot answer.
|
List<String> |
getMostRecentErrorMessages() |
String |
getOurCountry() |
CommSystemFacade.Status |
getStatus()
Determine under what conditions we are remotely reachable.
|
SortedMap<String,Transport> |
getTransports() |
X25519KeyFactory |
getXDHFactory()
Factory for making X25519 key pairs.
|
boolean |
haveHighOutboundCapacity() |
boolean |
haveInboundCapacity(int pct) |
boolean |
haveOutboundCapacity(int pct) |
void |
initGeoIP()
Router must call after netdb is initialized
|
boolean |
isBacklogged(Hash peer) |
boolean |
isDummy() |
abstract boolean |
isEstablished(Hash peer) |
boolean |
isExemptIncoming(String ip)
Is this IP exempt from any incoming throttles or rejections
|
boolean |
isInStrictCountry() |
boolean |
isInStrictCountry(Hash peer) |
boolean |
isInStrictCountry(RouterInfo ri) |
boolean |
isRunning() |
void |
mayDisconnect(Hash peer)
Tell the comm system that we may disconnect from this peer.
|
void |
notifyRemoveAddress(boolean ipv6)
Tell other transports our address changed
|
void |
notifyRemoveAddress(RouterAddress address)
Tell other transports our address changed
|
void |
notifyReplaceAddress(RouterAddress address)
Tell other transports our address changed
|
abstract void |
processMessage(OutNetMessage msg) |
void |
queueLookup(byte[] ip) |
void |
registerTransport(Transport t)
Pluggable transport
|
void |
removeExemption(String ip)
Remove this IP from the exemptions
|
String |
renderPeerCaps(Hash peer,
boolean inline) |
String |
renderPeerFlag(Hash peer) |
String |
renderPeerHTML(Hash peer,
boolean extended) |
void |
renderStatusHTML(Writer out) |
void |
renderStatusHTML(Writer out,
String urlBase,
int sortFlags) |
void |
unregisterTransport(Transport t)
Pluggable transport
|
boolean |
wasUnreachable(Hash peer) |
protected static final String ROUTER_BUNDLE_NAME
public static final short STATUS_DIFFERENT
public static final short STATUS_DISCONNECTED
public static final short STATUS_HOSED
public static final short STATUS_IPV4_DISABLED_IPV6_FIREWALLED
public static final short STATUS_IPV4_DISABLED_IPV6_OK
public static final short STATUS_IPV4_DISABLED_IPV6_UNKNOWN
public static final short STATUS_IPV4_FIREWALLED_IPV6_OK
public static final short STATUS_IPV4_FIREWALLED_IPV6_UNKNOWN
public static final short STATUS_IPV4_OK_IPV6_FIREWALLED
public static final short STATUS_IPV4_OK_IPV6_UNKNOWN
public static final short STATUS_IPV4_SNAT_IPV6_OK
public static final short STATUS_IPV4_SNAT_IPV6_UNKNOWN
public static final short STATUS_IPV4_UNKNOWN_IPV6_FIREWALLED
public static final short STATUS_IPV4_UNKNOWN_IPV6_OK
public static final short STATUS_OK
public static final short STATUS_REJECT_UNSOLICITED
public static final short STATUS_UNKNOWN
public abstract int countActivePeers()
public abstract int countActiveSendPeers()
public List<RouterAddress> createAddresses()
public void exemptIncoming(Hash peer)
public void forceDisconnect(Hash peer)
public Map<String,String> getCountries()
public String getCountry(String ip)
ip - IP address string (IPv4 or IPv6)public abstract List<Hash> getEstablished()
public long getFramedAveragePeerClockSkew(int percentToInclude)
public byte[] getIP(Hash dest)
public String getLocalizedStatusString()
public Long getMedianPeerClockSkew()
public String getOurCountry()
public CommSystemFacade.Status getStatus()
public SortedMap<String,Transport> getTransports()
public X25519KeyFactory getXDHFactory()
public boolean haveHighOutboundCapacity()
public boolean haveInboundCapacity(int pct)
public boolean haveOutboundCapacity(int pct)
public void initGeoIP()
public boolean isBacklogged(Hash peer)
public boolean isDummy()
public abstract boolean isEstablished(Hash peer)
public boolean isExemptIncoming(String ip)
public boolean isInStrictCountry()
public boolean isInStrictCountry(Hash peer)
public boolean isInStrictCountry(RouterInfo ri)
public boolean isRunning()
public void mayDisconnect(Hash peer)
public void notifyRemoveAddress(boolean ipv6)
public void notifyRemoveAddress(RouterAddress address)
public void notifyReplaceAddress(RouterAddress address)
public abstract void processMessage(OutNetMessage msg)
public void queueLookup(byte[] ip)
public void registerTransport(Transport t)
public void removeExemption(String ip)
public void renderStatusHTML(Writer out) throws IOException
renderStatusHTML in interface ServiceIOExceptionpublic void renderStatusHTML(Writer out, String urlBase, int sortFlags) throws IOException
IOExceptionpublic void unregisterTransport(Transport t)
public boolean wasUnreachable(Hash peer)