diff --git a/okhttp/src/main/java/com/squareup/okhttp/OkHttpClient.java b/okhttp/src/main/java/com/squareup/okhttp/OkHttpClient.java index da3e82c54..0511c40e5 100644 --- a/okhttp/src/main/java/com/squareup/okhttp/OkHttpClient.java +++ b/okhttp/src/main/java/com/squareup/okhttp/OkHttpClient.java @@ -284,7 +284,7 @@ public final class OkHttpClient { : HttpsURLConnection.getDefaultSSLSocketFactory(); result.hostnameVerifier = hostnameVerifier != null ? hostnameVerifier - : new OkHostnameVerifier(); + : OkHostnameVerifier.INSTANCE; result.authenticator = authenticator != null ? authenticator : HttpAuthenticator.SYSTEM_DEFAULT; diff --git a/okhttp/src/main/java/com/squareup/okhttp/internal/tls/OkHostnameVerifier.java b/okhttp/src/main/java/com/squareup/okhttp/internal/tls/OkHostnameVerifier.java index fbe8c68f2..a08773f6f 100644 --- a/okhttp/src/main/java/com/squareup/okhttp/internal/tls/OkHostnameVerifier.java +++ b/okhttp/src/main/java/com/squareup/okhttp/internal/tls/OkHostnameVerifier.java @@ -36,6 +36,8 @@ import javax.security.auth.x500.X500Principal; * href="http://www.ietf.org/rfc/rfc2818.txt">RFC 2818. */ public final class OkHostnameVerifier implements HostnameVerifier { + public static final OkHostnameVerifier INSTANCE = new OkHostnameVerifier(); + /** * Quick and dirty pattern to differentiate IP addresses from hostnames. This * is an approximation of Android's private InetAddress#isNumeric API. @@ -53,6 +55,9 @@ public final class OkHostnameVerifier implements HostnameVerifier { private static final int ALT_DNS_NAME = 2; private static final int ALT_IPA_NAME = 7; + private OkHostnameVerifier() { + } + public boolean verify(String host, SSLSession session) { try { Certificate[] certificates = session.getPeerCertificates(); diff --git a/okhttp/src/test/java/com/squareup/okhttp/internal/tls/HostnameVerifierTest.java b/okhttp/src/test/java/com/squareup/okhttp/internal/tls/HostnameVerifierTest.java index f908fb804..f1decc8df 100644 --- a/okhttp/src/test/java/com/squareup/okhttp/internal/tls/HostnameVerifierTest.java +++ b/okhttp/src/test/java/com/squareup/okhttp/internal/tls/HostnameVerifierTest.java @@ -36,7 +36,7 @@ import static org.junit.Assert.assertTrue; * itself includes tests from the Apache HTTP Client test suite. */ public final class HostnameVerifierTest { - private HostnameVerifier verifier = new OkHostnameVerifier(); + private HostnameVerifier verifier = OkHostnameVerifier.INSTANCE; @Test public void verify() throws Exception { FakeSSLSession session = new FakeSSLSession();