diff app/src/main/java/net/sourceforge/jsocks/Socks4Proxy.java @ 438:d29cce60f393

migrate from Eclipse to Android Studio
author Carl Byington <carl@five-ten-sg.com>
date Thu, 03 Dec 2015 11:23:55 -0800
parents src/net/sourceforge/jsocks/Socks4Proxy.java@205ee2873330
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/app/src/main/java/net/sourceforge/jsocks/Socks4Proxy.java	Thu Dec 03 11:23:55 2015 -0800
@@ -0,0 +1,121 @@
+package net.sourceforge.jsocks;
+import java.net.*;
+import java.io.*;
+import java.util.Hashtable;
+import java.util.Enumeration;
+
+/**
+  CProxy which describes SOCKS4 proxy.
+*/
+
+public class Socks4Proxy extends CProxy implements Cloneable{
+
+//Data members
+   String user;
+
+//Public Constructors
+//====================
+
+   /**
+     Creates the SOCKS4 proxy
+     @param p CProxy to use to connect to this proxy, allows proxy chaining.
+     @param proxyHost Address of the proxy server.
+     @param proxyPort Port of the proxy server
+     @param user User name to use for identification purposes.
+     @throws UnknownHostException If proxyHost can't be resolved.
+    */
+   public Socks4Proxy(CProxy p,String proxyHost,int proxyPort,String user)
+          throws UnknownHostException{ 
+      super(p,proxyHost,proxyPort);
+      this.user = new String(user);
+      version = 4;
+   }
+
+   /**
+     Creates the SOCKS4 proxy
+     @param proxyHost Address of the proxy server.
+     @param proxyPort Port of the proxy server
+     @param user User name to use for identification purposes.
+     @throws UnknownHostException If proxyHost can't be resolved.
+    */
+   public Socks4Proxy(String proxyHost,int proxyPort,String user)
+          throws UnknownHostException{ 
+      this(null,proxyHost,proxyPort,user);
+   }
+
+   /**
+     Creates the SOCKS4 proxy
+     @param p CProxy to use to connect to this proxy, allows proxy chaining.
+     @param proxyIP Address of the proxy server.
+     @param proxyPort Port of the proxy server
+     @param user User name to use for identification purposes.
+    */
+   public Socks4Proxy(CProxy p,InetAddress proxyIP,int proxyPort,String user){
+      super(p,proxyIP,proxyPort);
+      this.user = new String(user);
+      version = 4;
+   }
+
+   /**
+     Creates the SOCKS4 proxy
+     @param proxyIP Address of the proxy server.
+     @param proxyPort Port of the proxy server
+     @param user User name to use for identification purposes.
+    */
+   public Socks4Proxy(InetAddress proxyIP,int proxyPort,String user){
+      this(null,proxyIP,proxyPort,user);
+   }
+
+//Public instance methods
+//========================
+
+   /**
+    * Creates a clone of this proxy. Changes made to the clone should not
+    * affect this object. 
+    */
+   public Object clone(){
+      Socks4Proxy newProxy = new Socks4Proxy(proxyIP,proxyPort,user);
+      newProxy.directHosts = (InetRange)directHosts.clone();
+      newProxy.chainProxy = chainProxy;
+      return newProxy;
+   }
+
+
+//Public Static(Class) Methods
+//==============================
+
+
+//Protected Methods
+//=================
+
+   protected CProxy copy(){
+       Socks4Proxy copy = new Socks4Proxy(proxyIP,proxyPort,user);
+       copy.directHosts = this.directHosts;
+       copy.chainProxy = chainProxy;
+       return copy;
+    }
+
+   protected ProxyMessage formMessage(int cmd,InetAddress ip,int port){
+       switch(cmd){
+         case SOCKS_CMD_CONNECT:
+           cmd = Socks4Message.REQUEST_CONNECT;
+         break;
+         case SOCKS_CMD_BIND:
+           cmd = Socks4Message.REQUEST_BIND;
+         break;
+         default:
+           return null;
+       }
+       return new Socks4Message(cmd,ip,port,user);
+   }
+   protected ProxyMessage formMessage(int cmd,String host,int port)
+             throws UnknownHostException{
+       return formMessage(cmd,InetAddress.getByName(host),port);
+   }
+   protected ProxyMessage formMessage(InputStream in)
+             throws SocksException,
+                    IOException{
+       return new Socks4Message(in,true);
+   }
+
+}