use of com.predic8.membrane.core.transport.http.ConnectionManager in project service-proxy by membrane.
the class Connection method open.
public static Connection open(String host, int port, String localHost, SSLProvider sslProvider, ConnectionManager mgr, int connectTimeout, @Nullable String sniServername, @Nullable ProxyConfiguration proxy, @Nullable SSLProvider proxySSLProvider) throws UnknownHostException, IOException {
Connection con = new Connection(mgr, host, sslProvider, sniServername, proxy);
String origHost = host;
int origPort = port;
SSLProvider origSSLProvider = sslProvider;
String origSniServername = sniServername;
if (proxy != null) {
sslProvider = proxySSLProvider;
host = proxy.getHost();
port = proxy.getPort();
sniServername = null;
}
if (sslProvider != null) {
if (isNullOrEmpty(localHost))
con.socket = sslProvider.createSocket(host, port, connectTimeout, sniServername);
else
con.socket = sslProvider.createSocket(host, port, InetAddress.getByName(localHost), 0, connectTimeout, sniServername);
} else {
if (isNullOrEmpty(localHost)) {
con.socket = new Socket();
} else {
con.socket = new Socket();
con.socket.bind(new InetSocketAddress(InetAddress.getByName(localHost), 0));
}
con.socket.connect(new InetSocketAddress(host, port), connectTimeout);
}
if (proxy != null && origSSLProvider != null) {
con.doTunnelHandshake(proxy, con.socket, origHost, origPort);
con.socket = origSSLProvider.createSocket(con.socket, origHost, origPort, connectTimeout, origSniServername);
}
log.debug("Opened connection on localPort: " + con.socket.getLocalPort());
// Creating output stream before input stream is suggested.
con.out = new BufferedOutputStream(con.socket.getOutputStream(), 2048);
con.in = new BufferedInputStream(con.socket.getInputStream(), 2048);
return con;
}
use of com.predic8.membrane.core.transport.http.ConnectionManager in project service-proxy by membrane.
the class SSLProxy method init.
@Override
public void init(Router router) throws Exception {
this.router = router;
cm = new ConnectionManager(connectionConfiguration.getKeepAliveTimeout());
}
Aggregations