Class ClientManagerFacade

java.lang.Object
net.i2p.router.ClientManagerFacade
All Implemented Interfaces:
Service
Direct Known Subclasses:
ClientManagerFacadeImpl, DummyClientManagerFacade

public abstract class ClientManagerFacade extends Object implements Service
Manage all interactions with clients
Author:
jrandom
  • Field Details

  • Constructor Details

    • ClientManagerFacade

      public ClientManagerFacade()
  • Method Details

    • requestLeaseSet

      public abstract 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.
      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)
      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 abstract void requestLeaseSet(Hash dest, LeaseSet set)
    • reportAbuse

      public abstract void reportAbuse(Destination dest, String reason, int severity)
      Instruct the client (or all clients) that they are under attack. This call does not block.
      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 abstract boolean isLocal(Destination dest)
      Determine if the destination specified is managed locally. This call DOES block.
      Parameters:
      dest - Destination to be checked
    • isLocal

      public abstract boolean isLocal(Hash destHash)
      Determine if the destination hash specified is managed locally. This call DOES block.
      Parameters:
      destHash - Hash of Destination to be checked
    • messageDeliveryStatusUpdate

      public abstract void messageDeliveryStatusUpdate(Destination fromDest, MessageId id, long messageNonce, int status)
      Parameters:
      id - the router's ID for this message
      messageNonce - the client's ID for this message
      status - see I2CP MessageStatusMessage for success/failure codes
    • messageReceived

      public abstract void messageReceived(ClientMessage msg)
    • verifyClientLiveliness

      public boolean verifyClientLiveliness()
    • isAlive

      public boolean isAlive()
    • shouldPublishLeaseSet

      public boolean shouldPublishLeaseSet(Hash destinationHash)
      Does the client specified want their leaseSet published?
    • listClients

      public Set<Destination> listClients()
      Return the list of locally connected clients
      Returns:
      set of Destination objects
    • getClientSessionConfig

      public abstract SessionConfig getClientSessionConfig(Destination dest)
      Return the client's current config, or null if not connected
    • getClientSessionKeyManager

      public abstract SessionKeyManager getClientSessionKeyManager(Hash dest)
    • renderStatusHTML

      public void renderStatusHTML(Writer out) throws IOException
      Specified by:
      renderStatusHTML in interface Service
      Throws:
      IOException
    • shutdown

      public abstract void shutdown(String msg)
      Since:
      0.8.8
    • 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.
      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.
      Since:
      0.9.41