mirror of
https://github.com/square/okhttp.git
synced 2026-01-25 16:01:38 +03:00
Merge pull request #211 from square/jwilson/constant_hostname_verifier
Make OkHostnameVerifier a constant. This fixes connection reuse.
This commit is contained in:
@@ -301,7 +301,7 @@ public final class OkHttpClient implements URLStreamHandlerFactory {
|
||||
: HttpsURLConnection.getDefaultSSLSocketFactory();
|
||||
result.hostnameVerifier = hostnameVerifier != null
|
||||
? hostnameVerifier
|
||||
: new OkHostnameVerifier();
|
||||
: OkHostnameVerifier.INSTANCE;
|
||||
result.authenticator = authenticator != null
|
||||
? authenticator
|
||||
: HttpAuthenticator.SYSTEM_DEFAULT;
|
||||
|
||||
@@ -36,6 +36,8 @@ import javax.security.auth.x500.X500Principal;
|
||||
* href="http://www.ietf.org/rfc/rfc2818.txt">RFC 2818</a>.
|
||||
*/
|
||||
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();
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user