package org.simplejavamail.mailer.internal.socks.socks5client; import java.io.IOException; import java.net.InetAddress; import java.net.InetSocketAddress; import java.net.Socket; public class SSLSocks5 extends Socks5 { private final SSLConfiguration configuration; public SSLSocks5(final InetSocketAddress address, final SSLConfiguration configuration) { super(address); this.configuration = configuration; } private SSLSocks5(final InetAddress address, final int port, final SSLConfiguration configuration) { super(address, port); this.configuration = configuration; } @Override public Socket createProxySocket(final InetAddress address, final int port) throws IOException { return configuration.getSSLSocketFactory().createSocket(address, port); } @Override public Socket createProxySocket() throws IOException { return configuration.getSSLSocketFactory().createSocket(); } @Override public Socks5 copy() { return copyWithoutChainProxy().setChainProxy(getChainProxy()); } private Socks5 copyWithoutChainProxy() { final SSLSocks5 socks5 = new SSLSocks5(getInetAddress(), getPort(), configuration); socks5.setAlwaysResolveAddressLocally(isAlwaysResolveAddressLocally()).setCredentials(getCredentials()) .setInetAddress(getInetAddress()).setPort(getPort()).setSocksAuthenticationHelper(getSocksAuthenticationHelper()); return socks5; } }