aboutsummaryrefslogtreecommitdiffstats
path: root/AndroidAsync
diff options
context:
space:
mode:
authorKoushik Dutta <koushd@gmail.com>2014-11-06 16:28:05 -0800
committerKoushik Dutta <koushd@gmail.com>2014-11-06 16:28:05 -0800
commit02b146297b392fce04642ca9ab3d653cf19c7424 (patch)
tree788b4c68dfea1b16301e1cb9a069b34bad5965d4 /AndroidAsync
parent609d581f793d530191a7950c495c48272c1887ef (diff)
downloadAndroidAsync-02b146297b392fce04642ca9ab3d653cf19c7424.tar.gz
AndroidAsync-02b146297b392fce04642ca9ab3d653cf19c7424.tar.bz2
AndroidAsync-02b146297b392fce04642ca9ab3d653cf19c7424.zip
pass in the GetSocketData to the engine configurators.
Diffstat (limited to 'AndroidAsync')
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/AsyncSSLEngineConfigurator.java2
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/AsyncSSLSocketMiddleware.java6
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java22
3 files changed, 21 insertions, 9 deletions
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/AsyncSSLEngineConfigurator.java b/AndroidAsync/src/com/koushikdutta/async/http/AsyncSSLEngineConfigurator.java
index 36af9c1..755a50d 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/AsyncSSLEngineConfigurator.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/AsyncSSLEngineConfigurator.java
@@ -3,5 +3,5 @@ package com.koushikdutta.async.http;
import javax.net.ssl.SSLEngine;
public interface AsyncSSLEngineConfigurator {
- public void configureEngine(SSLEngine engine, String host, int port);
+ public void configureEngine(SSLEngine engine, AsyncHttpClientMiddleware.GetSocketData data, String host, int port);
}
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/AsyncSSLSocketMiddleware.java b/AndroidAsync/src/com/koushikdutta/async/http/AsyncSSLSocketMiddleware.java
index 01f3fbe..d557a31 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/AsyncSSLSocketMiddleware.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/AsyncSSLSocketMiddleware.java
@@ -57,12 +57,12 @@ public class AsyncSSLSocketMiddleware extends AsyncSocketMiddleware {
engineConfigurators.clear();
}
- protected SSLEngine createConfiguredSSLEngine(String host, int port) {
+ protected SSLEngine createConfiguredSSLEngine(GetSocketData data, String host, int port) {
SSLContext sslContext = getSSLContext();
SSLEngine sslEngine = sslContext.createSSLEngine();
for (AsyncSSLEngineConfigurator configurator : engineConfigurators) {
- configurator.configureEngine(sslEngine, host, port);
+ configurator.configureEngine(sslEngine, data, host, port);
}
return sslEngine;
@@ -79,7 +79,7 @@ public class AsyncSSLSocketMiddleware extends AsyncSocketMiddleware {
protected void tryHandshake(AsyncSocket socket, GetSocketData data, final Uri uri, final int port, final ConnectCallback callback) {
AsyncSSLSocketWrapper.handshake(socket, uri.getHost(), port,
- createConfiguredSSLEngine(uri.getHost(), port),
+ createConfiguredSSLEngine(data, uri.getHost(), port),
trustManagers, hostnameVerifier, true,
createHandshakeCallback(data, callback));
}
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java b/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java
index 74b08bd..b45f16a 100644
--- a/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java
+++ b/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java
@@ -39,13 +39,13 @@ public class SpdyMiddleware extends AsyncSSLSocketMiddleware {
super(client);
addEngineConfigurator(new AsyncSSLEngineConfigurator() {
@Override
- public void configureEngine(SSLEngine engine, String host, int port) {
- configure(engine, host, port);
+ public void configureEngine(SSLEngine engine, GetSocketData data, String host, int port) {
+ configure(engine, data, host, port);
}
});
}
- private void configure(SSLEngine engine, String host, int port) {
+ private void configure(SSLEngine engine, GetSocketData data, String host, int port) {
if (!initialized && spdyEnabled) {
initialized = true;
try {
@@ -83,6 +83,12 @@ public class SpdyMiddleware extends AsyncSSLSocketMiddleware {
}
}
+ // TODO: figure out why POST does not work if sending content-length header
+ // see above regarding app engine comment as to why: drive requires content-length
+ // but app engine sends a GO_AWAY if it sees a content-length...
+ if (!canSpdyRequest(data))
+ return;
+
if (sslParameters != null) {
try {
byte[] protocols = concatLengthPrefixed(
@@ -229,12 +235,18 @@ public class SpdyMiddleware extends AsyncSSLSocketMiddleware {
}
}
-
request.logv("\n" + request);
final AsyncSpdyConnection.SpdySocket spdy = connection.newStream(headers, requestBody != null, true);
callback.onConnectCompleted(null, spdy);
}
+ private boolean canSpdyRequest(GetSocketData data) {
+ // TODO: figure out why POST does not work if sending content-length header
+ // see above regarding app engine comment as to why: drive requires content-length
+ // but app engine sends a GO_AWAY if it sees a content-length...
+ return data.request.getBody() == null;
+ }
+
@Override
public Cancellable getSocket(GetSocketData data) {
if (!spdyEnabled)
@@ -249,7 +261,7 @@ public class SpdyMiddleware extends AsyncSSLSocketMiddleware {
// TODO: figure out why POST does not work if sending content-length header
// see above regarding app engine comment as to why: drive requires content-length
// but app engine sends a GO_AWAY if it sees a content-length...
- if (data.request.getBody() != null)
+ if (!canSpdyRequest(data))
return super.getSocket(data);
// can we use an existing connection to satisfy this, or do we need a new one?