diff options
author | Keith <keith@kmorrow.ca> | 2015-08-22 19:57:17 +0300 |
---|---|---|
committer | Keith <keith@kmorrow.ca> | 2015-08-22 19:57:17 +0300 |
commit | d87ea9d24f3d5485aa241939c32c25ca5cc2e4e6 (patch) | |
tree | 4d387e2078862fc659ebb21a9fc696963d289886 | |
parent | 9d1d94ade72a80af75f75ab64e0e1e3cdbd9d482 (diff) |
Add SNI support for outgoing Mumble connections
-rw-r--r-- | src/main/java/com/morlunk/jumble/net/JumbleTCP.java | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/main/java/com/morlunk/jumble/net/JumbleTCP.java b/src/main/java/com/morlunk/jumble/net/JumbleTCP.java index c603ff8..764b2af 100644 --- a/src/main/java/com/morlunk/jumble/net/JumbleTCP.java +++ b/src/main/java/com/morlunk/jumble/net/JumbleTCP.java @@ -34,6 +34,9 @@ import java.security.cert.X509Certificate; import javax.net.ssl.SSLHandshakeException; import javax.net.ssl.SSLSocket; +import android.net.SSLCertificateSocketFactory; +import android.os.Build; + /** * Class to maintain and interface with the TCP connection to a Mumble server. * Parses Mumble protobuf packets according to the Mumble protocol specification. @@ -82,6 +85,11 @@ public class JumbleTCP extends JumbleNetworkThread { else mTCPSocket = mSocketFactory.createSocket(address, mPort); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { // SNI support requires at least API 17 + SSLCertificateSocketFactory scsf = (SSLCertificateSocketFactory) SSLCertificateSocketFactory.getDefault(0); + scsf.setHostname(mTCPSocket, mHost); + } + mTCPSocket.setKeepAlive(true); mTCPSocket.startHandshake(); |