Class ProxyLoginHandler
- java.lang.Object
-
- com.biglybt.core.networkmanager.impl.tcp.ProxyLoginHandler
-
public class ProxyLoginHandler extends java.lang.Object
Handles the process of proxy login/authentication/setup.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static class
ProxyLoginHandler.ProxyInfo
static interface
ProxyLoginHandler.ProxyListener
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
mapped_ip
private static java.util.List<ProxyLoginHandler.ProxyInfo>
proxies
private static java.util.Map<java.net.InetSocketAddress,ProxyLoginHandler.ProxyInfo>
proxy_address_map
private TCPTransportImpl
proxy_connection
private static int
proxy_index
private ProxyLoginHandler.ProxyListener
proxy_listener
private static java.lang.Object
proxy_lock
private static AEProxySelector
proxy_selector
private static int
READ_DONE
private static int
READ_NO_PROGRESS
private static int
READ_NOT_DONE
private long
read_start_time
private java.net.InetSocketAddress
remote_address
private java.lang.String
socks_password
private java.lang.String
socks_user
private java.lang.String
socks_version
private int
socks5_address_length
private int
socks5_handshake_phase
-
Constructor Summary
Constructors Constructor Description ProxyLoginHandler(TCPTransportImpl _proxy_connection, java.net.InetSocketAddress _remote_address, ProxyLoginHandler.ProxyListener _listener)
Do proxy login.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)
ProxyLoginHandler(TCPTransportImpl _proxy_connection, java.net.InetSocketAddress _remote_address, ProxyLoginHandler.ProxyListener _listener, java.net.InetSocketAddress socks_address)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description private void
connect()
private java.nio.ByteBuffer[]
createSocks4aMessage()
private java.nio.ByteBuffer[]
createSocks4Message()
(package private) java.nio.ByteBuffer[]
createSocks5Message()
private void
doSocks4Login(java.nio.ByteBuffer[] data)
private void
doSocks5Login()
static java.net.InetSocketAddress
getProxyAddress(java.net.InetSocketAddress target)
protected static boolean
isDefaultProxy(java.net.InetSocketAddress a)
(package private) void
parseSocks4Reply(java.nio.ByteBuffer reply)
private boolean
parseSocks5Reply(java.nio.ByteBuffer reply)
protected static void
proxyFailed(java.net.InetSocketAddress address, java.lang.Throwable error)
(package private) static void
readConfig()
(package private) int
readMessage(java.nio.ByteBuffer msg)
(package private) void
sendMessage(java.nio.ByteBuffer msg)
-
-
-
Field Detail
-
READ_DONE
private static final int READ_DONE
- See Also:
- Constant Field Values
-
READ_NOT_DONE
private static final int READ_NOT_DONE
- See Also:
- Constant Field Values
-
READ_NO_PROGRESS
private static final int READ_NO_PROGRESS
- See Also:
- Constant Field Values
-
proxy_lock
private static java.lang.Object proxy_lock
-
proxies
private static java.util.List<ProxyLoginHandler.ProxyInfo> proxies
-
proxy_address_map
private static java.util.Map<java.net.InetSocketAddress,ProxyLoginHandler.ProxyInfo> proxy_address_map
-
proxy_index
private static int proxy_index
-
proxy_selector
private static final AEProxySelector proxy_selector
-
proxy_connection
private final TCPTransportImpl proxy_connection
-
remote_address
private final java.net.InetSocketAddress remote_address
-
proxy_listener
private final ProxyLoginHandler.ProxyListener proxy_listener
-
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 serverremote_address
- address to proxy tolistener
- for proxy login success or faulure
-
ProxyLoginHandler
public ProxyLoginHandler(TCPTransportImpl _proxy_connection, java.net.InetSocketAddress _remote_address, ProxyLoginHandler.ProxyListener _listener, java.net.InetSocketAddress socks_address)
-
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
-
-