diff options
author | Koushik Dutta <koushd@gmail.com> | 2015-01-02 00:40:56 -0800 |
---|---|---|
committer | Koushik Dutta <koushd@gmail.com> | 2015-01-02 00:41:00 -0800 |
commit | 8fccb744e3661434fafafc4c80e0ba8999a169d5 (patch) | |
tree | 95258578edafc5386a5049c9fe1149f7117ab7c5 /AndroidAsync | |
parent | 03ba3d24a94bd829f89051dc63fdcfac115898d8 (diff) | |
download | AndroidAsync-8fccb744e3661434fafafc4c80e0ba8999a169d5.tar.gz AndroidAsync-8fccb744e3661434fafafc4c80e0ba8999a169d5.tar.bz2 AndroidAsync-8fccb744e3661434fafafc4c80e0ba8999a169d5.zip |
fix ssl hang, even if spdy is disabled
Diffstat (limited to 'AndroidAsync')
-rw-r--r-- | AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java b/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java index 47ec2ed..b5c838e 100644 --- a/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java +++ b/AndroidAsync/src/com/koushikdutta/async/http/spdy/SpdyMiddleware.java @@ -167,10 +167,11 @@ public class SpdyMiddleware extends AsyncSSLSocketMiddleware { } private static final NoSpdyException NO_SPDY = new NoSpdyException(); - private void noSpdy(String key) { + private void noSpdy(final GetSocketData data, String key) { SpdyConnectionWaiter conn = connections.remove(key); if (conn != null) conn.setComplete(NO_SPDY); + data.request.logv("not using spdy"); } @Override @@ -178,25 +179,26 @@ public class SpdyMiddleware extends AsyncSSLSocketMiddleware { return new AsyncSSLSocketWrapper.HandshakeCallback() { @Override public void onHandshakeCompleted(Exception e, AsyncSSLSocket socket) { + final String key = data.request.getUri().getHost(); data.request.logv("checking spdy handshake"); if (e != null || nativeGetAlpnNegotiatedProtocol == null) { callback.onConnectCompleted(e, socket); + noSpdy(data, key); return; } - final String key = data.request.getUri().getHost(); try { long ptr = (Long)sslNativePointer.get(socket.getSSLEngine()); byte[] proto = (byte[])nativeGetAlpnNegotiatedProtocol.invoke(null, ptr); if (proto == null) { callback.onConnectCompleted(null, socket); - noSpdy(key); + noSpdy(data, key); return; } String protoString = new String(proto); Protocol p = Protocol.get(protoString); if (p == null) { callback.onConnectCompleted(null, socket); - noSpdy(key); + noSpdy(data, key); return; } final AsyncSpdyConnection connection = new AsyncSpdyConnection(socket, Protocol.get(protoString)) { @@ -224,7 +226,7 @@ public class SpdyMiddleware extends AsyncSSLSocketMiddleware { catch (Exception ex) { socket.close(); callback.onConnectCompleted(ex, null); - noSpdy(key); + noSpdy(data, key); } } }; |