public class TunnelPoolManager extends Object implements TunnelManagerFacade
Constructor and Description |
---|
TunnelPoolManager(RouterContext ctx) |
Modifier and Type | Method and Description |
---|---|
boolean |
addAlias(Destination dest,
ClientTunnelSettings settings,
Destination existingClient)
Add another destination to the same tunnels.
|
(package private) void |
buildComplete(PooledTunnelCreatorConfig cfg)
queue a recurring test job if appropriate
|
void |
buildTunnels(Destination client,
ClientTunnelSettings settings)
Used only at session startup.
|
void |
fail(Hash peer)
Fail all outbound tunnels with this peer as first hop,
and all inbound tunnels with this peer as the last hop,
baecause we can't contact it any more.
|
(package private) BuildExecutor |
getExecutor() |
int |
getFreeTunnelCount()
how many free inbound tunnels do we have available?
|
int |
getInboundBuildQueueSize()
count how many inbound tunnel requests we have received but not yet processed
|
Map<Hash,TunnelPool> |
getInboundClientPools()
for TunnelRenderer in router console
|
int |
getInboundClientTunnelCount()
how many free inbound client tunnels do we have available?
|
TunnelPool |
getInboundExploratoryPool()
For TunnelRenderer in router console
|
TunnelPoolSettings |
getInboundSettings()
exploratory
|
TunnelPoolSettings |
getInboundSettings(Hash client) |
long |
getLastParticipatingExpiration()
When does the last tunnel we are participating in expire?
|
Map<Hash,TunnelPool> |
getOutboundClientPools()
for TunnelRenderer in router console
|
int |
getOutboundClientTunnelCount()
how many outbound client tunnels do we have available?
|
int |
getOutboundClientTunnelCount(Hash destination)
Use to verify a tunnel pool is alive
|
TunnelPool |
getOutboundExploratoryPool()
For TunnelRenderer in router console
|
TunnelPoolSettings |
getOutboundSettings()
exploratory
|
TunnelPoolSettings |
getOutboundSettings(Hash client) |
int |
getOutboundTunnelCount()
how many outbound tunnels do we have available?
|
int |
getParticipatingCount()
how many tunnels are we participating in?
|
double |
getShareRatio() |
TunnelInfo |
getTunnelInfo(TunnelId id)
Deprecated.
unused
|
(package private) boolean |
isShutdown() |
boolean |
isValidTunnel(Hash client,
TunnelInfo tunnel)
Is a tunnel a valid member of the pool?
|
void |
listPools(List<TunnelPool> out)
list of TunnelPool instances currently in play
|
void |
removeAlias(Destination dest)
Remove a destination for the same tunnels as another.
|
void |
removeTunnels(Hash destination)
This will be called twice, once by the inbound and once by the outbound pool.
|
void |
renderStatusHTML(Writer out)
Deprecated.
moved to routerconsole
|
void |
restart()
Perform a soft restart.
|
TunnelInfo |
selectInboundExploratoryTunnel(Hash closestTo)
Pick the inbound exploratory tunnel with the gateway closest to the given hash.
|
TunnelInfo |
selectInboundTunnel()
Pick a random inbound exploratory tunnel.
|
TunnelInfo |
selectInboundTunnel(Hash destination)
Pick a random inbound tunnel from the given destination's pool.
|
TunnelInfo |
selectInboundTunnel(Hash destination,
Hash closestTo)
Pick the inbound tunnel with the gateway closest to the given hash
from the given destination's pool.
|
TunnelInfo |
selectOutboundExploratoryTunnel(Hash closestTo)
Pick the outbound exploratory tunnel with the endpoint closest to the given hash.
|
TunnelInfo |
selectOutboundTunnel()
Pick a random outbound exploratory tunnel.
|
TunnelInfo |
selectOutboundTunnel(Hash destination)
Pick a random outbound tunnel from the given destination's pool.
|
TunnelInfo |
selectOutboundTunnel(Hash destination,
Hash closestTo)
Pick the outbound tunnel with the endpoint closest to the given hash
from the given destination's pool.
|
Set<Hash> |
selectPeersInTooManyTunnels()
For reliability reasons, don't allow a peer in more than x% of
client and exploratory tunnels.
|
void |
setInboundSettings(Hash client,
TunnelPoolSettings settings) |
void |
setInboundSettings(TunnelPoolSettings settings)
exploratory
|
void |
setOutboundSettings(Hash client,
TunnelPoolSettings settings) |
void |
setOutboundSettings(TunnelPoolSettings settings)
exploratory
|
void |
shutdown()
Cannot be restarted
|
void |
startup()
Instruct the service that it should start normal operation.
|
(package private) void |
tunnelFailed() |
public TunnelPoolManager(RouterContext ctx)
public TunnelInfo selectInboundTunnel()
selectInboundTunnel
in interface TunnelManagerFacade
public TunnelInfo selectInboundTunnel(Hash destination)
selectInboundTunnel
in interface TunnelManagerFacade
destination
- if null, returns inbound exploratory tunnelpublic TunnelInfo selectOutboundTunnel()
selectOutboundTunnel
in interface TunnelManagerFacade
public TunnelInfo selectOutboundTunnel(Hash destination)
selectOutboundTunnel
in interface TunnelManagerFacade
destination
- if null, returns outbound exploratory tunnelpublic TunnelInfo selectInboundExploratoryTunnel(Hash closestTo)
selectInboundExploratoryTunnel
in interface TunnelManagerFacade
closestTo
- non-nullpublic TunnelInfo selectInboundTunnel(Hash destination, Hash closestTo)
selectInboundTunnel
in interface TunnelManagerFacade
destination
- if null, returns inbound exploratory tunnelclosestTo
- non-nullpublic TunnelInfo selectOutboundExploratoryTunnel(Hash closestTo)
selectOutboundExploratoryTunnel
in interface TunnelManagerFacade
closestTo
- non-nullpublic TunnelInfo selectOutboundTunnel(Hash destination, Hash closestTo)
selectOutboundTunnel
in interface TunnelManagerFacade
destination
- if null, returns outbound exploratory tunnelclosestTo
- non-null@Deprecated public TunnelInfo getTunnelInfo(TunnelId id)
getTunnelInfo
in interface TunnelManagerFacade
id
- the tunnelId as seen at the gatewaypublic int getFreeTunnelCount()
TunnelManagerFacade
getFreeTunnelCount
in interface TunnelManagerFacade
public int getOutboundTunnelCount()
TunnelManagerFacade
getOutboundTunnelCount
in interface TunnelManagerFacade
public int getInboundClientTunnelCount()
TunnelManagerFacade
getInboundClientTunnelCount
in interface TunnelManagerFacade
public int getOutboundClientTunnelCount()
TunnelManagerFacade
getOutboundClientTunnelCount
in interface TunnelManagerFacade
public int getOutboundClientTunnelCount(Hash destination)
getOutboundClientTunnelCount
in interface TunnelManagerFacade
public int getParticipatingCount()
TunnelManagerFacade
getParticipatingCount
in interface TunnelManagerFacade
public long getLastParticipatingExpiration()
TunnelManagerFacade
getLastParticipatingExpiration
in interface TunnelManagerFacade
public double getShareRatio()
getShareRatio
in interface TunnelManagerFacade
public boolean isValidTunnel(Hash client, TunnelInfo tunnel)
TunnelManagerFacade
isValidTunnel
in interface TunnelManagerFacade
public TunnelPoolSettings getInboundSettings()
getInboundSettings
in interface TunnelManagerFacade
public TunnelPoolSettings getOutboundSettings()
getOutboundSettings
in interface TunnelManagerFacade
public void setInboundSettings(TunnelPoolSettings settings)
setInboundSettings
in interface TunnelManagerFacade
public void setOutboundSettings(TunnelPoolSettings settings)
setOutboundSettings
in interface TunnelManagerFacade
public TunnelPoolSettings getInboundSettings(Hash client)
getInboundSettings
in interface TunnelManagerFacade
public TunnelPoolSettings getOutboundSettings(Hash client)
getOutboundSettings
in interface TunnelManagerFacade
public void setInboundSettings(Hash client, TunnelPoolSettings settings)
setInboundSettings
in interface TunnelManagerFacade
public void setOutboundSettings(Hash client, TunnelPoolSettings settings)
setOutboundSettings
in interface TunnelManagerFacade
public void restart()
Service
public void buildTunnels(Destination client, ClientTunnelSettings settings)
buildTunnels
in interface TunnelManagerFacade
public boolean addAlias(Destination dest, ClientTunnelSettings settings, Destination existingClient)
addAlias
in interface TunnelManagerFacade
IllegalArgumentException
- if notpublic void removeAlias(Destination dest)
removeAlias
in interface TunnelManagerFacade
public void removeTunnels(Hash destination)
void buildComplete(PooledTunnelCreatorConfig cfg)
public void startup()
Service
public void listPools(List<TunnelPool> out)
listPools
in interface TunnelManagerFacade
void tunnelFailed()
BuildExecutor getExecutor()
boolean isShutdown()
public int getInboundBuildQueueSize()
TunnelManagerFacade
getInboundBuildQueueSize
in interface TunnelManagerFacade
@Deprecated public void renderStatusHTML(Writer out) throws IOException
renderStatusHTML
in interface Service
IOException
public Set<Hash> selectPeersInTooManyTunnels()
selectPeersInTooManyTunnels
in interface TunnelManagerFacade
public Map<Hash,TunnelPool> getInboundClientPools()
getInboundClientPools
in interface TunnelManagerFacade
public Map<Hash,TunnelPool> getOutboundClientPools()
getOutboundClientPools
in interface TunnelManagerFacade
public TunnelPool getInboundExploratoryPool()
getInboundExploratoryPool
in interface TunnelManagerFacade
public TunnelPool getOutboundExploratoryPool()
getOutboundExploratoryPool
in interface TunnelManagerFacade
public void fail(Hash peer)
fail
in interface TunnelManagerFacade