diff options
author | Narayan Kamath <narayan@google.com> | 2013-06-13 09:26:31 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2013-06-13 09:26:32 +0000 |
commit | 46fb83f3095bfdeff14feb0d4c3d40984caa13e7 (patch) | |
tree | da6cea1504292122781d78787902b79c38d7cbe1 /android | |
parent | 5b06e6f38e52c7641a87d90991b07139b4d3dc1f (diff) | |
parent | faf49723fb689c626f69876e718c58018eff8ee7 (diff) | |
download | okhttp-46fb83f3095bfdeff14feb0d4c3d40984caa13e7.tar.gz |
Merge "Update okhttp to commit b48247968a."
Diffstat (limited to 'android')
-rw-r--r-- | android/main/java/com/squareup/okhttp/HttpsHandler.java | 6 | ||||
-rw-r--r-- | android/main/java/com/squareup/okhttp/internal/Platform.java | 29 |
2 files changed, 34 insertions, 1 deletions
diff --git a/android/main/java/com/squareup/okhttp/HttpsHandler.java b/android/main/java/com/squareup/okhttp/HttpsHandler.java index 1dc3826..515725a 100644 --- a/android/main/java/com/squareup/okhttp/HttpsHandler.java +++ b/android/main/java/com/squareup/okhttp/HttpsHandler.java @@ -22,8 +22,12 @@ import java.net.Proxy; import java.net.URL; import java.net.URLConnection; import java.net.URLStreamHandler; +import java.util.Arrays; +import java.util.List; public final class HttpsHandler extends URLStreamHandler { + private static final List<String> ENABLED_TRANSPORTS = Arrays.asList("http/1.1"); + @Override protected URLConnection openConnection(URL url) throws IOException { return new OkHttpClient().open(url); } @@ -32,7 +36,7 @@ public final class HttpsHandler extends URLStreamHandler { if (url == null || proxy == null) { throw new IllegalArgumentException("url == null || proxy == null"); } - return new OkHttpClient().setProxy(proxy).open(url); + return new OkHttpClient().setProxy(proxy).setTransports(ENABLED_TRANSPORTS).open(url); } @Override protected int getDefaultPort() { diff --git a/android/main/java/com/squareup/okhttp/internal/Platform.java b/android/main/java/com/squareup/okhttp/internal/Platform.java index fe0745c..db633c6 100644 --- a/android/main/java/com/squareup/okhttp/internal/Platform.java +++ b/android/main/java/com/squareup/okhttp/internal/Platform.java @@ -18,6 +18,7 @@ package com.squareup.okhttp.internal; import dalvik.system.SocketTagger; import java.io.OutputStream; +import java.net.NetworkInterface; import java.net.Socket; import java.net.SocketException; import java.net.URI; @@ -34,6 +35,12 @@ import com.android.org.conscrypt.OpenSSLSocketImpl; public final class Platform { private static final Platform PLATFORM = new Platform(); + /* + * Default for the maximum transmission unit, used only if + * there's an error retrieving it via NetworkInterface. + */ + private static final int DEFAULT_MTU = 1400; + public static Platform get() { return PLATFORM; } @@ -94,4 +101,26 @@ public final class Platform { OutputStream out, Deflater deflater, boolean syncFlush) { return new DeflaterOutputStream(out, deflater, syncFlush); } + + /** + * Returns the maximum transmission unit of the network interface used by + * {@code socket}, or a reasonable default if there's an error retrieving + * it from the socket. + * + * <p>The returned value should only be used as an optimization; such as to + * size buffers efficiently. + */ + public int getMtu(Socket socket) { + try { + NetworkInterface networkInterface = NetworkInterface.getByInetAddress( + socket.getLocalAddress()); + if (networkInterface != null) { + return networkInterface.getMTU(); + } + + return DEFAULT_MTU; + } catch (SocketException exception) { + return DEFAULT_MTU; + } + } } |