Search in sources :

Example 1 with ConnectionManager

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;
}
Also used : InetSocketAddress(java.net.InetSocketAddress) SSLProvider(com.predic8.membrane.core.transport.ssl.SSLProvider) Socket(java.net.Socket) SSLSocket(javax.net.ssl.SSLSocket)

Example 2 with ConnectionManager

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());
}
Also used : ConnectionManager(com.predic8.membrane.core.transport.http.ConnectionManager)

Aggregations

ConnectionManager (com.predic8.membrane.core.transport.http.ConnectionManager)1 SSLProvider (com.predic8.membrane.core.transport.ssl.SSLProvider)1 InetSocketAddress (java.net.InetSocketAddress)1 Socket (java.net.Socket)1 SSLSocket (javax.net.ssl.SSLSocket)1