aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKoushik Dutta <koushd@gmail.com>2015-06-28 14:25:49 -0700
committerKoushik Dutta <koushd@gmail.com>2015-06-28 14:25:56 -0700
commitf585d5b7e48ae6ec87992185a0281ac92ba10d5d (patch)
tree71de4c50e49593d95d8fbde2eff16950e330e60b
parent1bc7905b07821f840068089343e6b77a8686d1ab (diff)
downloadAndroidAsync-f585d5b7e48ae6ec87992185a0281ac92ba10d5d.tar.gz
AndroidAsync-f585d5b7e48ae6ec87992185a0281ac92ba10d5d.tar.bz2
AndroidAsync-f585d5b7e48ae6ec87992185a0281ac92ba10d5d.zip
Properly bubble up any exceptions during handshake failure.
Related to diagnosing: https://github.com/koush/ion/issues/559#issuecomment-116263055
-rw-r--r--AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java b/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java
index 3dd7415..f7ac99e 100644
--- a/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java
+++ b/AndroidAsync/src/com/koushikdutta/async/AsyncSSLSocketWrapper.java
@@ -103,7 +103,10 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket
socket.setClosedCallback(new CompletedCallback() {
@Override
public void onCompleted(Exception ex) {
- callback.onHandshakeCompleted(new SSLException(ex), null);
+ if (ex != null)
+ callback.onHandshakeCompleted(ex, null);
+ else
+ callback.onHandshakeCompleted(new SSLException("socket closed during handshake"), null);
}
});
try {
@@ -421,6 +424,8 @@ public class AsyncSSLSocketWrapper implements AsyncSocketWrapper, AsyncSSLSocket
handshakeCallback = null;
mSocket.setDataCallback(new DataCallback.NullDataCallback());
mSocket.end();
+ // handshake sets this callback. unset it.
+ mSocket.setClosedCallback(null);
mSocket.close();
hs.onHandshakeCompleted(e, null);
return;