1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 package org.apache.http.conn.scheme;
29
30 import java.io.IOException;
31 import java.net.InetAddress;
32 import java.net.InetSocketAddress;
33 import java.net.Socket;
34 import java.net.SocketTimeoutException;
35 import java.net.UnknownHostException;
36
37 import org.apache.http.annotation.Immutable;
38 import org.apache.http.conn.ConnectTimeoutException;
39 import org.apache.http.conn.DnsResolver;
40 import org.apache.http.params.HttpConnectionParams;
41 import org.apache.http.params.HttpParams;
42 import org.apache.http.util.Args;
43
44
45
46
47
48
49
50
51 @Immutable
52 @Deprecated
53 public class PlainSocketFactory implements SocketFactory, SchemeSocketFactory {
54
55 private final HostNameResolver nameResolver;
56
57
58
59
60
61
62 public static PlainSocketFactory getSocketFactory() {
63 return new PlainSocketFactory();
64 }
65
66
67
68
69 @Deprecated
70 public PlainSocketFactory(final HostNameResolver nameResolver) {
71 super();
72 this.nameResolver = nameResolver;
73 }
74
75 public PlainSocketFactory() {
76 super();
77 this.nameResolver = null;
78 }
79
80
81
82
83
84
85
86
87 public Socket createSocket(final HttpParams params) {
88 return new Socket();
89 }
90
91 public Socket createSocket() {
92 return new Socket();
93 }
94
95
96
97
98 public Socket connectSocket(
99 final Socket socket,
100 final InetSocketAddress remoteAddress,
101 final InetSocketAddress localAddress,
102 final HttpParams params) throws IOException, ConnectTimeoutException {
103 Args.notNull(remoteAddress, "Remote address");
104 Args.notNull(params, "HTTP parameters");
105 Socket sock = socket;
106 if (sock == null) {
107 sock = createSocket();
108 }
109 if (localAddress != null) {
110 sock.setReuseAddress(HttpConnectionParams.getSoReuseaddr(params));
111 sock.bind(localAddress);
112 }
113 final int connTimeout = HttpConnectionParams.getConnectionTimeout(params);
114 final int soTimeout = HttpConnectionParams.getSoTimeout(params);
115
116 try {
117 sock.setSoTimeout(soTimeout);
118 sock.connect(remoteAddress, connTimeout);
119 } catch (final SocketTimeoutException ex) {
120 throw new ConnectTimeoutException("Connect to " + remoteAddress + " timed out");
121 }
122 return sock;
123 }
124
125
126
127
128
129
130
131
132
133
134 public final boolean isSecure(final Socket sock) {
135 return false;
136 }
137
138
139
140
141 @Deprecated
142 public Socket connectSocket(
143 final Socket socket,
144 final String host, final int port,
145 final InetAddress localAddress, int localPort,
146 final HttpParams params) throws IOException, UnknownHostException, ConnectTimeoutException {
147 InetSocketAddress local = null;
148 if (localAddress != null || localPort > 0) {
149
150 if (localPort < 0) {
151 localPort = 0;
152 }
153 local = new InetSocketAddress(localAddress, localPort);
154 }
155 InetAddress remoteAddress;
156 if (this.nameResolver != null) {
157 remoteAddress = this.nameResolver.resolve(host);
158 } else {
159 remoteAddress = InetAddress.getByName(host);
160 }
161 final InetSocketAddress remote = new InetSocketAddress(remoteAddress, port);
162 return connectSocket(socket, remote, local, params);
163 }
164
165 }