Package net.i2p.router.client
Class ClientManagerFacadeImpl
- java.lang.Object
-
- net.i2p.router.ClientManagerFacade
-
- net.i2p.router.client.ClientManagerFacadeImpl
-
- All Implemented Interfaces:
InternalClientManager
,Service
public class ClientManagerFacadeImpl extends ClientManagerFacade implements InternalClientManager
Base impl of the client facade- Author:
- jrandom
-
-
Field Summary
Fields Modifier and Type Field Description static String
DEFAULT_HOST
static int
DEFAULT_PORT
static String
PROP_CLIENT_HOST
note that this is different than the property the client side uses, i2cp.tcp.hoststatic String
PROP_CLIENT_PORT
note that this is different than the property the client side uses, i2cp.tcp.port-
Fields inherited from class net.i2p.router.ClientManagerFacade
PROP_CLIENT_ONLY
-
-
Constructor Summary
Constructors Constructor Description ClientManagerFacadeImpl(RouterContext context)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description I2CPMessageQueue
connect()
The InternalClientManager interface.SessionConfig
getClientSessionConfig(Destination dest)
Return the client's current config, or null if not connectedSessionKeyManager
getClientSessionKeyManager(Hash dest)
Return the client's current manager or null if not connectedboolean
isAlive()
boolean
isLocal(Destination dest)
Determine if the destination specified is managed locally.boolean
isLocal(Hash destHash)
Determine if the destination specified is managed locally.Set<Destination>
listClients()
Return the list of locally connected clientsvoid
messageDeliveryStatusUpdate(Destination fromDest, MessageId id, long messageNonce, int status)
void
messageReceived(ClientMessage msg)
void
registerMetaDest(Destination dest)
Declare that we're going to publish a meta LS for this destination.void
renderStatusHTML(Writer out)
Deprecated.unusedvoid
reportAbuse(Destination dest, String reason, int severity)
Instruct the client (or all clients) that they are under attack.void
requestLeaseSet(Destination dest, LeaseSet set, long timeout, Job onCreateJob, Job onFailedJob)
Request that a particular client authorize the Leases contained in the LeaseSet, after which the onCreateJob is queued up.void
requestLeaseSet(Hash dest, LeaseSet set)
Request that a particular client authorize the Leases contained in the LeaseSet.void
restart()
Perform a soft restart.boolean
shouldPublishLeaseSet(Hash destinationHash)
Does the client specified want their leaseSet published?void
shutdown()
Instruct the service that the router is shutting down and that it should do whatever is necessary to go down gracefully.void
shutdown(String msg)
void
startup()
Instruct the service that it should start normal operation.void
unregisterMetaDest(Destination dest)
Declare that we're no longer going to publish a meta LS for this destination.boolean
verifyClientLiveliness()
-
-
-
Field Detail
-
PROP_CLIENT_PORT
public static final String PROP_CLIENT_PORT
note that this is different than the property the client side uses, i2cp.tcp.port- See Also:
- Constant Field Values
-
DEFAULT_PORT
public static final int DEFAULT_PORT
- See Also:
- Constant Field Values
-
PROP_CLIENT_HOST
public static final String PROP_CLIENT_HOST
note that this is different than the property the client side uses, i2cp.tcp.host- See Also:
- Constant Field Values
-
DEFAULT_HOST
public static final String DEFAULT_HOST
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
ClientManagerFacadeImpl
public ClientManagerFacadeImpl(RouterContext context)
-
-
Method Detail
-
startup
public void startup()
Description copied from interface:Service
Instruct the service that it should start normal operation. This call DOES block until the service is ready.
-
shutdown
public void shutdown()
Description copied from interface:Service
Instruct the service that the router is shutting down and that it should do whatever is necessary to go down gracefully. It should not depend on other components at this point. This call DOES block.
-
shutdown
public void shutdown(String msg)
- Specified by:
shutdown
in classClientManagerFacade
- Parameters:
msg
- message to send to the clients- Since:
- 0.8.8
-
restart
public void restart()
Description copied from interface:Service
Perform a soft restart.
-
isAlive
public boolean isAlive()
- Overrides:
isAlive
in classClientManagerFacade
-
verifyClientLiveliness
public boolean verifyClientLiveliness()
- Overrides:
verifyClientLiveliness
in classClientManagerFacade
-
requestLeaseSet
public void requestLeaseSet(Destination dest, LeaseSet set, long timeout, Job onCreateJob, Job onFailedJob)
Request that a particular client authorize the Leases contained in the LeaseSet, after which the onCreateJob is queued up. If that doesn't occur within the timeout specified, queue up the onFailedJob. This call does not block. UNUSED, the call below without jobs is always used.- Specified by:
requestLeaseSet
in classClientManagerFacade
- Parameters:
dest
- Destination from which the LeaseSet's authorization should be requestedset
- LeaseSet with requested leases - this object must be updated to contain the signed version (as well as any changed/added/removed Leases) The LeaseSet contains Leases only; it is unsigned and does not have the destination set.timeout
- ms to wait before failingonCreateJob
- Job to run after the LeaseSet is authorizedonFailedJob
- Job to run after the timeout passes without receiving authorization
-
requestLeaseSet
public void requestLeaseSet(Hash dest, LeaseSet set)
Request that a particular client authorize the Leases contained in the LeaseSet.- Specified by:
requestLeaseSet
in classClientManagerFacade
- Parameters:
dest
- Destination from which the LeaseSet's authorization should be requestedset
- LeaseSet with requested leases - this object must be updated to contain the signed version (as well as any changed/added/removed Leases). The LeaseSet contains Leases only; it is unsigned and does not have the destination set.
-
reportAbuse
public void reportAbuse(Destination dest, String reason, int severity)
Instruct the client (or all clients) that they are under attack. This call does not block.- Specified by:
reportAbuse
in classClientManagerFacade
- Parameters:
dest
- Destination under attack, or null if all destinations are affectedreason
- Why the router thinks that there is abusive behaviorseverity
- How severe the abuse is, with 0 being not severe and 255 is the max
-
isLocal
public boolean isLocal(Destination dest)
Determine if the destination specified is managed locally. This call DOES block.- Specified by:
isLocal
in classClientManagerFacade
- Parameters:
dest
- Destination to be checked
-
isLocal
public boolean isLocal(Hash destHash)
Determine if the destination specified is managed locally. This call DOES block.- Specified by:
isLocal
in classClientManagerFacade
- Parameters:
destHash
- Hash of Destination to be checked
-
shouldPublishLeaseSet
public boolean shouldPublishLeaseSet(Hash destinationHash)
Description copied from class:ClientManagerFacade
Does the client specified want their leaseSet published?- Overrides:
shouldPublishLeaseSet
in classClientManagerFacade
-
messageDeliveryStatusUpdate
public void messageDeliveryStatusUpdate(Destination fromDest, MessageId id, long messageNonce, int status)
- Specified by:
messageDeliveryStatusUpdate
in classClientManagerFacade
- Parameters:
id
- the router's ID for this messagemessageNonce
- the client's ID for this message, greater than zerostatus
- see I2CP MessageStatusMessage for success/failure codes
-
messageReceived
public void messageReceived(ClientMessage msg)
- Specified by:
messageReceived
in classClientManagerFacade
-
getClientSessionConfig
public SessionConfig getClientSessionConfig(Destination dest)
Return the client's current config, or null if not connected- Specified by:
getClientSessionConfig
in classClientManagerFacade
-
getClientSessionKeyManager
public SessionKeyManager getClientSessionKeyManager(Hash dest)
Return the client's current manager or null if not connected- Specified by:
getClientSessionKeyManager
in classClientManagerFacade
-
renderStatusHTML
@Deprecated public void renderStatusHTML(Writer out) throws IOException
Deprecated.unused- Specified by:
renderStatusHTML
in interfaceService
- Overrides:
renderStatusHTML
in classClientManagerFacade
- Throws:
IOException
-
listClients
public Set<Destination> listClients()
Return the list of locally connected clients- Overrides:
listClients
in classClientManagerFacade
- Returns:
- set of Destination objects
-
connect
public I2CPMessageQueue connect() throws I2PSessionException
The InternalClientManager interface. Connect to the router, receiving a message queue to talk to the router with.- Specified by:
connect
in interfaceInternalClientManager
- Throws:
I2PSessionException
- if the router isn't ready- Since:
- 0.8.3
-
registerMetaDest
public void registerMetaDest(Destination dest) throws I2PSessionException
Declare that we're going to publish a meta LS for this destination. Must be called before publishing the leaseset.- Overrides:
registerMetaDest
in classClientManagerFacade
- Throws:
I2PSessionException
- on duplicate dest- Since:
- 0.9.41
-
unregisterMetaDest
public void unregisterMetaDest(Destination dest)
Declare that we're no longer going to publish a meta LS for this destination.- Overrides:
unregisterMetaDest
in classClientManagerFacade
- Since:
- 0.9.41
-
-