comparison 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
comparison
equal deleted inserted replaced
437:208b31032318 438:d29cce60f393
1 package net.sourceforge.jsocks;
2 import java.net.*;
3 import java.io.*;
4 import java.util.Hashtable;
5 import java.util.Enumeration;
6
7 /**
8 CProxy which describes SOCKS4 proxy.
9 */
10
11 public class Socks4Proxy extends CProxy implements Cloneable{
12
13 //Data members
14 String user;
15
16 //Public Constructors
17 //====================
18
19 /**
20 Creates the SOCKS4 proxy
21 @param p CProxy to use to connect to this proxy, allows proxy chaining.
22 @param proxyHost Address of the proxy server.
23 @param proxyPort Port of the proxy server
24 @param user User name to use for identification purposes.
25 @throws UnknownHostException If proxyHost can't be resolved.
26 */
27 public Socks4Proxy(CProxy p,String proxyHost,int proxyPort,String user)
28 throws UnknownHostException{
29 super(p,proxyHost,proxyPort);
30 this.user = new String(user);
31 version = 4;
32 }
33
34 /**
35 Creates the SOCKS4 proxy
36 @param proxyHost Address of the proxy server.
37 @param proxyPort Port of the proxy server
38 @param user User name to use for identification purposes.
39 @throws UnknownHostException If proxyHost can't be resolved.
40 */
41 public Socks4Proxy(String proxyHost,int proxyPort,String user)
42 throws UnknownHostException{
43 this(null,proxyHost,proxyPort,user);
44 }
45
46 /**
47 Creates the SOCKS4 proxy
48 @param p CProxy to use to connect to this proxy, allows proxy chaining.
49 @param proxyIP Address of the proxy server.
50 @param proxyPort Port of the proxy server
51 @param user User name to use for identification purposes.
52 */
53 public Socks4Proxy(CProxy p,InetAddress proxyIP,int proxyPort,String user){
54 super(p,proxyIP,proxyPort);
55 this.user = new String(user);
56 version = 4;
57 }
58
59 /**
60 Creates the SOCKS4 proxy
61 @param proxyIP Address of the proxy server.
62 @param proxyPort Port of the proxy server
63 @param user User name to use for identification purposes.
64 */
65 public Socks4Proxy(InetAddress proxyIP,int proxyPort,String user){
66 this(null,proxyIP,proxyPort,user);
67 }
68
69 //Public instance methods
70 //========================
71
72 /**
73 * Creates a clone of this proxy. Changes made to the clone should not
74 * affect this object.
75 */
76 public Object clone(){
77 Socks4Proxy newProxy = new Socks4Proxy(proxyIP,proxyPort,user);
78 newProxy.directHosts = (InetRange)directHosts.clone();
79 newProxy.chainProxy = chainProxy;
80 return newProxy;
81 }
82
83
84 //Public Static(Class) Methods
85 //==============================
86
87
88 //Protected Methods
89 //=================
90
91 protected CProxy copy(){
92 Socks4Proxy copy = new Socks4Proxy(proxyIP,proxyPort,user);
93 copy.directHosts = this.directHosts;
94 copy.chainProxy = chainProxy;
95 return copy;
96 }
97
98 protected ProxyMessage formMessage(int cmd,InetAddress ip,int port){
99 switch(cmd){
100 case SOCKS_CMD_CONNECT:
101 cmd = Socks4Message.REQUEST_CONNECT;
102 break;
103 case SOCKS_CMD_BIND:
104 cmd = Socks4Message.REQUEST_BIND;
105 break;
106 default:
107 return null;
108 }
109 return new Socks4Message(cmd,ip,port,user);
110 }
111 protected ProxyMessage formMessage(int cmd,String host,int port)
112 throws UnknownHostException{
113 return formMessage(cmd,InetAddress.getByName(host),port);
114 }
115 protected ProxyMessage formMessage(InputStream in)
116 throws SocksException,
117 IOException{
118 return new Socks4Message(in,true);
119 }
120
121 }