From a17dfaed4d35c7aa23af922d88c75931ed75d238 Mon Sep 17 00:00:00 2001 From: "David A. Velasco" Date: Tue, 28 Oct 2014 12:31:23 +0100 Subject: [PATCH] AdvancedSslSocketFactory needs to implement SecureProtocolSocketFactory so that the connection manager tunnel correctly through the proxy --- .../lib/common/network/AdvancedSslSocketFactory.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/com/owncloud/android/lib/common/network/AdvancedSslSocketFactory.java b/src/com/owncloud/android/lib/common/network/AdvancedSslSocketFactory.java index 7b41282b..9efc85a4 100644 --- a/src/com/owncloud/android/lib/common/network/AdvancedSslSocketFactory.java +++ b/src/com/owncloud/android/lib/common/network/AdvancedSslSocketFactory.java @@ -43,6 +43,7 @@ import javax.net.ssl.SSLSocket; import org.apache.commons.httpclient.ConnectTimeoutException; import org.apache.commons.httpclient.params.HttpConnectionParams; import org.apache.commons.httpclient.protocol.ProtocolSocketFactory; +import org.apache.commons.httpclient.protocol.SecureProtocolSocketFactory; import org.apache.http.conn.ssl.X509HostnameVerifier; import com.owncloud.android.lib.common.utils.Log_OC; @@ -56,7 +57,7 @@ import com.owncloud.android.lib.common.utils.Log_OC; * @author David A. Velasco */ -public class AdvancedSslSocketFactory implements ProtocolSocketFactory { +public class AdvancedSslSocketFactory implements SecureProtocolSocketFactory { private static final String TAG = AdvancedSslSocketFactory.class.getSimpleName(); @@ -287,5 +288,13 @@ public class AdvancedSslSocketFactory implements ProtocolSocketFactory { throw io; } } + + @Override + public Socket createSocket(Socket socket, String host, int port, boolean autoClose) throws IOException, + UnknownHostException { + Socket sslSocket = mSslContext.getSocketFactory().createSocket(socket, host, port, autoClose); + verifyPeerIdentity(host, port, sslSocket); + return sslSocket; + } }