aboutsummaryrefslogtreecommitdiffstats
path: root/src/net/sourceforge/jsocks/SocksServerSocket.java
diff options
context:
space:
mode:
authorKenny Root <kenny@the-b.org>2013-04-11 21:01:32 -0700
committerKenny Root <kenny@the-b.org>2013-04-11 21:01:32 -0700
commitd8e49ec3f297f9ba0991762eb2cddbc00ed634d2 (patch)
treeaac59c707c980e90202241c7a9c306ab9d278a1c /src/net/sourceforge/jsocks/SocksServerSocket.java
parent847af5046fb7d2dbcc668cecf81f1726b7c48bd9 (diff)
downloadconnectbot-d8e49ec3f297f9ba0991762eb2cddbc00ed634d2.tar.gz
connectbot-d8e49ec3f297f9ba0991762eb2cddbc00ed634d2.tar.bz2
connectbot-d8e49ec3f297f9ba0991762eb2cddbc00ed634d2.zip
Fix line endings
Diffstat (limited to 'src/net/sourceforge/jsocks/SocksServerSocket.java')
-rw-r--r--src/net/sourceforge/jsocks/SocksServerSocket.java328
1 files changed, 164 insertions, 164 deletions
diff --git a/src/net/sourceforge/jsocks/SocksServerSocket.java b/src/net/sourceforge/jsocks/SocksServerSocket.java
index 739251d..179e9c4 100644
--- a/src/net/sourceforge/jsocks/SocksServerSocket.java
+++ b/src/net/sourceforge/jsocks/SocksServerSocket.java
@@ -1,164 +1,164 @@
-package net.sourceforge.jsocks;
-
-import java.net.*;
-import java.io.*;
-
-/**
- SocksServerSocket allows to accept connections from one particular
- host through the SOCKS4 or SOCKS5 proxy.
-*/
-public class SocksServerSocket extends ServerSocket{
- //Data members
- protected Proxy proxy;
- protected String localHost;
- protected InetAddress localIP;
- protected int localPort;
-
- boolean doing_direct = false;
- InetAddress remoteAddr;
-
- /**
- *Creates ServerSocket capable of accepting one connection
- *through the firewall, uses given proxy.
- *@param host Host from which the connection should be recieved.
- *@param port Port number of the primary connection.
- */
- public SocksServerSocket(String host, int port) throws SocksException,
- UnknownHostException, IOException {
-
- super(0);
- remoteAddr = InetAddress.getByName(host);
- doDirect();
- }
-
- /**
- * Creates ServerSocket capable of accepting one connection
- * through the firewall, uses default Proxy.
- *@param ip Host from which the connection should be recieved.
- *@param port Port number of the primary connection.
- */
- public SocksServerSocket(InetAddress ip, int port) throws SocksException,
- IOException{
- this(Proxy.defaultProxy,ip,port);
- }
-
- /**
- *Creates ServerSocket capable of accepting one connection
- *through the firewall, uses given proxy.
- *@param ip Host from which the connection should be recieved.
- *@param port Port number of the primary connection.
- */
- public SocksServerSocket(Proxy p, InetAddress ip, int port)
- throws SocksException, IOException {
- super(0);
-
- remoteAddr = ip;
- doDirect();
- }
-
-
- /**
- * Accepts the incoming connection.
- */
- public Socket accept() throws IOException{
- Socket s;
-
- if(!doing_direct){
- if(proxy == null) return null;
-
- ProxyMessage msg = proxy.accept();
- s = msg.ip == null? new SocksSocket(msg.host,msg.port,proxy)
- : new SocksSocket(msg.ip,msg.port,proxy);
- //Set timeout back to 0
- proxy.proxySocket.setSoTimeout(0);
- }else{ //Direct Connection
-
- //Mimic the proxy behaviour,
- //only accept connections from the speciefed host.
- while(true){
- s = super.accept();
- if(s.getInetAddress().equals(remoteAddr)){
- //got the connection from the right host
- //Close listenning socket.
- break;
- }else
- s.close(); //Drop all connections from other hosts
- }
-
- }
- proxy = null;
- //Return accepted socket
- return s;
- }
-
- /**
- * Closes the connection to proxy if socket have not been accepted, if
- * the direct connection is used, closes direct ServerSocket. If the
- * client socket have been allready accepted, does nothing.
- */
- public void close() throws IOException{
- super.close();
- if(proxy != null) proxy.endSession();
- proxy = null;
- }
-
- /**
- Get the name of the host proxy is using to listen for incoming
- connection.
- <P>
- Usefull when address is returned by proxy as the hostname.
- @return the hostname of the address proxy is using to listen
- for incoming connection.
- */
- public String getHost(){
- return localHost;
- }
-
- /**
- * Get address assigned by proxy to listen for incomming
- * connections, or the local machine address if doing direct
- * connection.
- */
- public InetAddress getInetAddress(){
- if(localIP == null){
- try{
- localIP = InetAddress.getByName(localHost);
- }catch(UnknownHostException e){
- return null;
- }
- }
- return localIP;
- }
-
- /**
- * Get port assigned by proxy to listen for incoming connections, or
- the port chosen by local system, if accepting directly.
- */
- public int getLocalPort(){
- return localPort;
- }
-
- /**
- Set Timeout.
-
- @param timeout Amount of time in milliseconds, accept should wait for
- incoming connection before failing with exception.
- Zero timeout implies infinity.
- */
- public void setSoTimeout(int timeout) throws SocketException{
- super.setSoTimeout(timeout);
- if(!doing_direct) proxy.proxySocket.setSoTimeout(timeout);
- }
-
-
-//Private Methods
-//////////////////
-
- private void doDirect(){
- doing_direct = true;
- localPort = super.getLocalPort();
- localIP = super.getInetAddress();
- localHost = localIP.getHostName();
- }
-
-}
+package net.sourceforge.jsocks;
+
+import java.net.*;
+import java.io.*;
+
+/**
+ SocksServerSocket allows to accept connections from one particular
+ host through the SOCKS4 or SOCKS5 proxy.
+*/
+public class SocksServerSocket extends ServerSocket{
+ //Data members
+ protected Proxy proxy;
+ protected String localHost;
+ protected InetAddress localIP;
+ protected int localPort;
+
+ boolean doing_direct = false;
+ InetAddress remoteAddr;
+
+ /**
+ *Creates ServerSocket capable of accepting one connection
+ *through the firewall, uses given proxy.
+ *@param host Host from which the connection should be recieved.
+ *@param port Port number of the primary connection.
+ */
+ public SocksServerSocket(String host, int port) throws SocksException,
+ UnknownHostException, IOException {
+
+ super(0);
+ remoteAddr = InetAddress.getByName(host);
+ doDirect();
+ }
+
+ /**
+ * Creates ServerSocket capable of accepting one connection
+ * through the firewall, uses default Proxy.
+ *@param ip Host from which the connection should be recieved.
+ *@param port Port number of the primary connection.
+ */
+ public SocksServerSocket(InetAddress ip, int port) throws SocksException,
+ IOException{
+ this(Proxy.defaultProxy,ip,port);
+ }
+
+ /**
+ *Creates ServerSocket capable of accepting one connection
+ *through the firewall, uses given proxy.
+ *@param ip Host from which the connection should be recieved.
+ *@param port Port number of the primary connection.
+ */
+ public SocksServerSocket(Proxy p, InetAddress ip, int port)
+ throws SocksException, IOException {
+ super(0);
+
+ remoteAddr = ip;
+ doDirect();
+ }
+
+
+ /**
+ * Accepts the incoming connection.
+ */
+ public Socket accept() throws IOException{
+ Socket s;
+
+ if(!doing_direct){
+ if(proxy == null) return null;
+
+ ProxyMessage msg = proxy.accept();
+ s = msg.ip == null? new SocksSocket(msg.host,msg.port,proxy)
+ : new SocksSocket(msg.ip,msg.port,proxy);
+ //Set timeout back to 0
+ proxy.proxySocket.setSoTimeout(0);
+ }else{ //Direct Connection
+
+ //Mimic the proxy behaviour,
+ //only accept connections from the speciefed host.
+ while(true){
+ s = super.accept();
+ if(s.getInetAddress().equals(remoteAddr)){
+ //got the connection from the right host
+ //Close listenning socket.
+ break;
+ }else
+ s.close(); //Drop all connections from other hosts
+ }
+
+ }
+ proxy = null;
+ //Return accepted socket
+ return s;
+ }
+
+ /**
+ * Closes the connection to proxy if socket have not been accepted, if
+ * the direct connection is used, closes direct ServerSocket. If the
+ * client socket have been allready accepted, does nothing.
+ */
+ public void close() throws IOException{
+ super.close();
+ if(proxy != null) proxy.endSession();
+ proxy = null;
+ }
+
+ /**
+ Get the name of the host proxy is using to listen for incoming
+ connection.
+ <P>
+ Usefull when address is returned by proxy as the hostname.
+ @return the hostname of the address proxy is using to listen
+ for incoming connection.
+ */
+ public String getHost(){
+ return localHost;
+ }
+
+ /**
+ * Get address assigned by proxy to listen for incomming
+ * connections, or the local machine address if doing direct
+ * connection.
+ */
+ public InetAddress getInetAddress(){
+ if(localIP == null){
+ try{
+ localIP = InetAddress.getByName(localHost);
+ }catch(UnknownHostException e){
+ return null;
+ }
+ }
+ return localIP;
+ }
+
+ /**
+ * Get port assigned by proxy to listen for incoming connections, or
+ the port chosen by local system, if accepting directly.
+ */
+ public int getLocalPort(){
+ return localPort;
+ }
+
+ /**
+ Set Timeout.
+
+ @param timeout Amount of time in milliseconds, accept should wait for
+ incoming connection before failing with exception.
+ Zero timeout implies infinity.
+ */
+ public void setSoTimeout(int timeout) throws SocketException{
+ super.setSoTimeout(timeout);
+ if(!doing_direct) proxy.proxySocket.setSoTimeout(timeout);
+ }
+
+
+//Private Methods
+//////////////////
+
+ private void doDirect(){
+ doing_direct = true;
+ localPort = super.getLocalPort();
+ localIP = super.getInetAddress();
+ localHost = localIP.getHostName();
+ }
+
+}