Mercurial > 510Connectbot
comparison app/src/main/java/net/sourceforge/jsocks/ProxyMessage.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/ProxyMessage.java@205ee2873330 |
children |
comparison
equal
deleted
inserted
replaced
437:208b31032318 | 438:d29cce60f393 |
---|---|
1 package net.sourceforge.jsocks; | |
2 | |
3 import java.io.IOException; | |
4 import java.io.InputStream; | |
5 import java.io.OutputStream; | |
6 import java.io.DataInputStream; | |
7 import java.net.InetAddress; | |
8 import java.net.UnknownHostException; | |
9 | |
10 /** | |
11 Abstract class which describes SOCKS4/5 response/request. | |
12 */ | |
13 public abstract class ProxyMessage{ | |
14 /** Host as an IP address */ | |
15 public InetAddress ip=null; | |
16 /** SOCKS version, or version of the response for SOCKS4*/ | |
17 public int version; | |
18 /** Port field of the request/response*/ | |
19 public int port; | |
20 /** Request/response code as an int*/ | |
21 public int command; | |
22 /** Host as string.*/ | |
23 public String host=null; | |
24 /** User field for SOCKS4 request messages*/ | |
25 public String user=null; | |
26 | |
27 ProxyMessage(int command,InetAddress ip,int port){ | |
28 this.command = command; | |
29 this.ip = ip; | |
30 this.port = port; | |
31 } | |
32 | |
33 ProxyMessage(){ | |
34 } | |
35 | |
36 | |
37 /** | |
38 Initialises Message from the stream. Reads server response from | |
39 given stream. | |
40 @param in Input stream to read response from. | |
41 @throws SocksException If server response code is not SOCKS_SUCCESS(0), or | |
42 if any error with protocol occurs. | |
43 @throws IOException If any error happens with I/O. | |
44 */ | |
45 public abstract void read(InputStream in) | |
46 throws SocksException, | |
47 IOException; | |
48 | |
49 | |
50 /** | |
51 Initialises Message from the stream. Reads server response or client | |
52 request from given stream. | |
53 | |
54 @param in Input stream to read response from. | |
55 @param clinetMode If true read server response, else read client request. | |
56 @throws SocksException If server response code is not SOCKS_SUCCESS(0) and | |
57 reading in client mode, or if any error with protocol occurs. | |
58 @throws IOException If any error happens with I/O. | |
59 */ | |
60 public abstract void read(InputStream in,boolean client_mode) | |
61 throws SocksException, | |
62 IOException; | |
63 | |
64 | |
65 /** | |
66 Writes the message to the stream. | |
67 @param out Output stream to which message should be written. | |
68 */ | |
69 public abstract void write(OutputStream out)throws SocksException, | |
70 IOException; | |
71 | |
72 /** | |
73 Get the Address field of this message as InetAddress object. | |
74 @return Host address or null, if one can't be determined. | |
75 */ | |
76 public InetAddress getInetAddress() throws UnknownHostException{ | |
77 return ip; | |
78 } | |
79 | |
80 | |
81 /** | |
82 Get string representaion of this message. | |
83 @return string representation of this message. | |
84 */ | |
85 public String toString(){ | |
86 return | |
87 "Proxy Message:\n"+ | |
88 "Version:"+ version+"\n"+ | |
89 "Command:"+ command+"\n"+ | |
90 "IP: "+ ip+"\n"+ | |
91 "Port: "+ port+"\n"+ | |
92 "User: "+ user+"\n" ; | |
93 } | |
94 | |
95 //Package methods | |
96 ////////////////// | |
97 | |
98 static final String bytes2IPV4(byte[] addr,int offset){ | |
99 String hostName = ""+(addr[offset] & 0xFF); | |
100 for(int i = offset+1;i<offset+4;++i) | |
101 hostName+="."+(addr[i] & 0xFF); | |
102 return hostName; | |
103 } | |
104 | |
105 static final String bytes2IPV6(byte[] addr,int offset){ | |
106 //Have no idea how they look like! | |
107 return null; | |
108 } | |
109 | |
110 } |