Class ProxyLoginHandler


  • public class ProxyLoginHandler
    extends java.lang.Object
    Handles the process of proxy login/authentication/setup.
    • Field Detail

      • proxy_lock

        private static java.lang.Object proxy_lock
      • proxy_index

        private static int proxy_index
      • remote_address

        private final java.net.InetSocketAddress remote_address
      • mapped_ip

        private java.lang.String mapped_ip
      • socks5_handshake_phase

        private int socks5_handshake_phase
      • socks5_address_length

        private int socks5_address_length
      • read_start_time

        private long read_start_time
      • socks_version

        private final java.lang.String socks_version
      • socks_user

        private final java.lang.String socks_user
      • socks_password

        private final java.lang.String socks_password
    • Constructor Detail

      • ProxyLoginHandler

        public ProxyLoginHandler​(TCPTransportImpl _proxy_connection,
                                 java.net.InetSocketAddress _remote_address,
                                 ProxyLoginHandler.ProxyListener _listener)
        Do proxy login.
        Parameters:
        proxy_connection - transport connected to proxy server
        remote_address - address to proxy to
        listener - for proxy login success or faulure
      • ProxyLoginHandler

        public ProxyLoginHandler​(TCPTransportImpl _proxy_connection,
                                 java.net.InetSocketAddress _remote_address,
                                 ProxyLoginHandler.ProxyListener _listener,
                                 java.lang.String _socks_version,
                                 java.lang.String _socks_user,
                                 java.lang.String _socks_password)
    • Method Detail

      • readConfig

        static void readConfig()
      • isDefaultProxy

        protected static boolean isDefaultProxy​(java.net.InetSocketAddress a)
      • proxyFailed

        protected static void proxyFailed​(java.net.InetSocketAddress address,
                                          java.lang.Throwable error)
      • connect

        private void connect()
      • getProxyAddress

        public static java.net.InetSocketAddress getProxyAddress​(java.net.InetSocketAddress target)
      • doSocks4Login

        private void doSocks4Login​(java.nio.ByteBuffer[] data)
      • doSocks5Login

        private void doSocks5Login()
      • parseSocks4Reply

        void parseSocks4Reply​(java.nio.ByteBuffer reply)
                       throws java.io.IOException
        Throws:
        java.io.IOException
      • sendMessage

        void sendMessage​(java.nio.ByteBuffer msg)
                  throws java.io.IOException
        Throws:
        java.io.IOException
      • readMessage

        int readMessage​(java.nio.ByteBuffer msg)
                 throws java.io.IOException
        Throws:
        java.io.IOException
      • createSocks4Message

        private java.nio.ByteBuffer[] createSocks4Message()
                                                   throws java.lang.Exception
        Throws:
        java.lang.Exception
      • createSocks4aMessage

        private java.nio.ByteBuffer[] createSocks4aMessage()
      • createSocks5Message

        java.nio.ByteBuffer[] createSocks5Message()
      • parseSocks5Reply

        private boolean parseSocks5Reply​(java.nio.ByteBuffer reply)
                                  throws java.io.IOException
        Throws:
        java.io.IOException