public abstract class CommSystemFacade extends Object implements Service
Modifier and Type | Class and Description |
---|---|
static class |
CommSystemFacade.Status
Since the codes may change.
|
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.
|
Map<String,String> |
getCountries()
Get the country code map
|
String |
getCountry(Hash peer) |
String |
getCountryName(String code) |
DHSessionKeyBuilder.Factory |
getDHFactory()
Hook for pluggable transport creation.
|
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() |
short |
getReachabilityStatus()
Deprecated.
use getStatus()
|
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 |
recheckReachability()
Deprecated.
unused
|
void |
registerTransport(Transport t)
Pluggable transport
|
void |
removeExemption(String ip)
Remove this IP from the exemptions
|
String |
renderPeerHTML(Hash peer) |
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_OK
public static final short STATUS_IPV4_OK_IPV6_UNKNOWN
public static final short STATUS_IPV4_OK_IPV6_FIREWALLED
public static final short STATUS_IPV4_UNKNOWN_IPV6_OK
public static final short STATUS_IPV4_FIREWALLED_IPV6_OK
public static final short STATUS_IPV4_DISABLED_IPV6_OK
public static final short STATUS_IPV4_SNAT_IPV6_OK
public static final short STATUS_DIFFERENT
public static final short STATUS_IPV4_SNAT_IPV6_UNKNOWN
public static final short STATUS_IPV4_FIREWALLED_IPV6_UNKNOWN
public static final short STATUS_REJECT_UNSOLICITED
public static final short STATUS_IPV4_UNKNOWN_IPV6_FIREWALLED
public static final short STATUS_IPV4_DISABLED_IPV6_UNKNOWN
public static final short STATUS_IPV4_DISABLED_IPV6_FIREWALLED
public static final short STATUS_DISCONNECTED
public static final short STATUS_HOSED
public static final short STATUS_UNKNOWN
public abstract void processMessage(OutNetMessage msg)
public void renderStatusHTML(Writer out, String urlBase, int sortFlags) throws IOException
IOException
public void renderStatusHTML(Writer out) throws IOException
renderStatusHTML
in interface Service
IOException
public List<RouterAddress> createAddresses()
public abstract int countActivePeers()
public abstract int countActiveSendPeers()
public boolean haveInboundCapacity(int pct)
public boolean haveOutboundCapacity(int pct)
public boolean haveHighOutboundCapacity()
public Long getMedianPeerClockSkew()
public long getFramedAveragePeerClockSkew(int percentToInclude)
@Deprecated public short getReachabilityStatus()
public CommSystemFacade.Status getStatus()
public String getLocalizedStatusString()
@Deprecated public void recheckReachability()
public boolean isBacklogged(Hash peer)
public boolean wasUnreachable(Hash peer)
public abstract boolean isEstablished(Hash peer)
public byte[] getIP(Hash dest)
public void queueLookup(byte[] ip)
public void mayDisconnect(Hash peer)
public void forceDisconnect(Hash peer)
public String getOurCountry()
public boolean isInStrictCountry()
public boolean isInStrictCountry(Hash peer)
public boolean isInStrictCountry(RouterInfo ri)
public Map<String,String> getCountries()
public SortedMap<String,Transport> getTransports()
public abstract List<Hash> getEstablished()
public boolean isDummy()
public boolean isRunning()
public void notifyReplaceAddress(RouterAddress address)
public void notifyRemoveAddress(RouterAddress address)
public void notifyRemoveAddress(boolean ipv6)
public void registerTransport(Transport t)
public void unregisterTransport(Transport t)
public DHSessionKeyBuilder.Factory getDHFactory()
public X25519KeyFactory getXDHFactory()
public void initGeoIP()
public void exemptIncoming(Hash peer)
public boolean isExemptIncoming(String ip)
public void removeExemption(String ip)