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 Details

    • 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:
    • DEFAULT_PORT

      public static final int DEFAULT_PORT
      See Also:
    • 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:
    • DEFAULT_HOST

      public static final String DEFAULT_HOST
      See Also:
  • Constructor Details

    • ClientManagerFacadeImpl

      public ClientManagerFacadeImpl(RouterContext context)
  • Method Details

    • 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.
      Specified by:
      startup in interface Service
    • 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.
      Specified by:
      shutdown in interface Service
    • shutdown

      public void shutdown(String msg)
      Specified by:
      shutdown in class ClientManagerFacade
      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.
      Specified by:
      restart in interface Service
    • isAlive

      public boolean isAlive()
      Overrides:
      isAlive in class ClientManagerFacade
    • verifyClientLiveliness

      public boolean verifyClientLiveliness()
      Overrides:
      verifyClientLiveliness in class ClientManagerFacade
    • 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 class ClientManagerFacade
      Parameters:
      dest - Destination from which the LeaseSet's authorization should be requested
      set - 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 failing
      onCreateJob - Job to run after the LeaseSet is authorized
      onFailedJob - 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 class ClientManagerFacade
      Parameters:
      dest - Destination from which the LeaseSet's authorization should be requested
      set - 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 class ClientManagerFacade
      Parameters:
      dest - Destination under attack, or null if all destinations are affected
      reason - Why the router thinks that there is abusive behavior
      severity - 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 class ClientManagerFacade
      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 class ClientManagerFacade
      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 class ClientManagerFacade
    • messageDeliveryStatusUpdate

      public void messageDeliveryStatusUpdate(Destination fromDest, MessageId id, long messageNonce, int status)
      Specified by:
      messageDeliveryStatusUpdate in class ClientManagerFacade
      Parameters:
      id - the router's ID for this message
      messageNonce - the client's ID for this message, greater than zero
      status - see I2CP MessageStatusMessage for success/failure codes
    • messageReceived

      public void messageReceived(ClientMessage msg)
      Specified by:
      messageReceived in class ClientManagerFacade
    • getClientSessionConfig

      public SessionConfig getClientSessionConfig(Destination dest)
      Return the client's current config, or null if not connected
      Specified by:
      getClientSessionConfig in class ClientManagerFacade
    • getClientSessionKeyManager

      public SessionKeyManager getClientSessionKeyManager(Hash dest)
      Return the client's current manager or null if not connected
      Specified by:
      getClientSessionKeyManager in class ClientManagerFacade
    • renderStatusHTML

      @Deprecated public void renderStatusHTML(Writer out) throws IOException
      Deprecated.
      unused
      Specified by:
      renderStatusHTML in interface Service
      Overrides:
      renderStatusHTML in class ClientManagerFacade
      Throws:
      IOException
    • listClients

      public Set<Destination> listClients()
      Return the list of locally connected clients
      Overrides:
      listClients in class ClientManagerFacade
      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 interface InternalClientManager
      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 class ClientManagerFacade
      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 class ClientManagerFacade
      Since:
      0.9.41