Package net.i2p.i2ptunnel.socks
Class SOCKSServer
- java.lang.Object
-
- net.i2p.i2ptunnel.socks.SOCKSServer
-
- Direct Known Subclasses:
SOCKS4aServer,SOCKS5Server
abstract class SOCKSServer extends Object
Abstract base class used by all SOCKS servers.- Author:
- human
-
-
Field Summary
Fields Modifier and Type Field Description protected I2PAppContext_contextprotected Log_logprotected intaddressTypeprotected SocketclientSockprotected StringconnHostNameprotected intconnPortprotected Propertiesprops
-
Constructor Summary
Constructors Modifier Constructor Description protectedSOCKSServer(I2PAppContext ctx, Socket clientSock, Properties props)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract voidconfirmConnection()Confirm to the client that the connection has succeededabstract SocketgetClientSocket()Get a socket that can be used to send/receive 8-bit clean data to/from the client.abstract I2PSocketgetDestinationI2PSocket(I2PSOCKSTunnel t)Get an I2PSocket that can be used to send/receive 8-bit clean data to/from the destination of the SOCKS connection.protected StringgetMappedDomainNameForIP(String ip)IP to domain name mapping support.protected OutproxygetOutproxyPlugin()protected abstract voidsetupServer()Perform server initialization (expecially regarding protected variables).
-
-
-
Field Detail
-
connHostName
protected String connHostName
-
connPort
protected int connPort
-
addressType
protected int addressType
-
_context
protected final I2PAppContext _context
-
clientSock
protected final Socket clientSock
-
props
protected final Properties props
-
_log
protected final Log _log
-
-
Constructor Detail
-
SOCKSServer
protected SOCKSServer(I2PAppContext ctx, Socket clientSock, Properties props)
- Since:
- 0.9.27
-
-
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 SOCKSExceptionPerform 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 SOCKSExceptionConfirm 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
-
-