aboutsummaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorNarayan Kamath <narayan@google.com>2013-06-13 09:26:31 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2013-06-13 09:26:32 +0000
commit46fb83f3095bfdeff14feb0d4c3d40984caa13e7 (patch)
treeda6cea1504292122781d78787902b79c38d7cbe1 /android
parent5b06e6f38e52c7641a87d90991b07139b4d3dc1f (diff)
parentfaf49723fb689c626f69876e718c58018eff8ee7 (diff)
downloadokhttp-46fb83f3095bfdeff14feb0d4c3d40984caa13e7.tar.gz
Merge "Update okhttp to commit b48247968a."
Diffstat (limited to 'android')
-rw-r--r--android/main/java/com/squareup/okhttp/HttpsHandler.java6
-rw-r--r--android/main/java/com/squareup/okhttp/internal/Platform.java29
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;
+ }
+ }
}