Class SOCKSServer

  • Direct Known Subclasses:
    SOCKS4aServer, SOCKS5Server

    abstract class SOCKSServer
    extends Object
    Abstract base class used by all SOCKS servers.
    Author:
    human
    • Field Detail

      • connHostName

        protected String connHostName
      • connPort

        protected int connPort
      • addressType

        protected int addressType
      • clientSock

        protected final Socket clientSock
      • _log

        protected final Log _log
    • Method Detail

      • getMappedDomainNameForIP

        protected String getMappedDomainNameForIP​(String ip)
        IP to domain name mapping support. This matches the given IP string against a user-set list of mappings. This enables applications which do not properly support the SOCKS5 DOMAINNAME feature to be used with I2P.
        Parameters:
        ip - The IP address to check.
        Returns:
        The domain name if a mapping is found, or null otherwise.
        Since:
        0.9.5
      • setupServer

        protected abstract void setupServer()
                                     throws SOCKSException
        Perform server initialization (expecially regarding protected variables).
        Throws:
        SOCKSException
      • getClientSocket

        public abstract Socket getClientSocket()
                                        throws SOCKSException
        Get a socket that can be used to send/receive 8-bit clean data to/from the client.
        Returns:
        a Socket connected with the client
        Throws:
        SOCKSException
      • confirmConnection

        protected abstract void confirmConnection()
                                           throws SOCKSException
        Confirm to the client that the connection has succeeded
        Throws:
        SOCKSException
      • getDestinationI2PSocket

        public abstract I2PSocket getDestinationI2PSocket​(I2PSOCKSTunnel t)
                                                   throws SOCKSException
        Get an I2PSocket that can be used to send/receive 8-bit clean data to/from the destination of the SOCKS connection.
        Returns:
        an I2PSocket connected with the destination
        Throws:
        SOCKSException
      • getOutproxyPlugin

        protected Outproxy getOutproxyPlugin()
        Returns:
        null if disabled or not installed
        Since:
        0.9.27