private static Socket _createSSLSocket(KeyManager[] keyManagers, TrustManager trustManager, String host, int port, int connectTimeout, int readTimeout, ISVNCanceller cancel, boolean withSNIsupport) throws IOException, SVNException {
InetAddress address = createAddres(host);
Socket sslSocket = createSSLContext(keyManagers, trustManager).getSocketFactory().createSocket();
int bufferSize = getSocketReceiveBufferSize();
if (bufferSize > 0) {
sslSocket.setReceiveBufferSize(bufferSize);
}
if (withSNIsupport) {
sslSocket = setSSLSocketHost(sslSocket, host);
}
InetSocketAddress socketAddress = new InetSocketAddress(address, port);
sslSocket.setReuseAddress(true);
sslSocket.setTcpNoDelay(true);
sslSocket.setKeepAlive(true);
sslSocket.setSoLinger(true, 0);
sslSocket.setSoTimeout(readTimeout);
sslSocket = configureSSLSocket(sslSocket);
connect(sslSocket, socketAddress, connectTimeout, cancel);
return sslSocket;
}