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
_context
protected Log
_log
protected int
addressType
protected Socket
clientSock
protected String
connHostName
protected int
connPort
protected Properties
props
-
Constructor Summary
Constructors Modifier Constructor Description protected
SOCKSServer(I2PAppContext ctx, Socket clientSock, Properties props)
-
Method Summary
Modifier and Type Method Description protected abstract void
confirmConnection()
Confirm to the client that the connection has succeededabstract Socket
getClientSocket()
Get a socket that can be used to send/receive 8-bit clean data to/from the client.abstract I2PSocket
getDestinationI2PSocket(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 String
getMappedDomainNameForIP(String ip)
IP to domain name mapping support.protected Outproxy
getOutproxyPlugin()
protected abstract void
setupServer()
Perform server initialization (expecially regarding protected variables).
-
Field Details
-
connHostName
-
connPort
protected int connPort -
addressType
protected int addressType -
_context
-
clientSock
-
props
-
_log
-
-
Constructor Details
-
SOCKSServer
- Since:
- 0.9.27
-
-
Method Details
-
getMappedDomainNameForIP
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
Perform server initialization (expecially regarding protected variables).- Throws:
SOCKSException
-
getClientSocket
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
Confirm to the client that the connection has succeeded- Throws:
SOCKSException
-
getDestinationI2PSocket
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
- Returns:
- null if disabled or not installed
- Since:
- 0.9.27
-