From 16876a53344a4d3d5224a480fc17811574339301 Mon Sep 17 00:00:00 2001 From: Nils Maier Date: Mon, 8 Apr 2013 17:09:32 +0200 Subject: AppleTLS: Fixup checkDirection() to return WANT_READ by default --- src/AppleTLSSession.cc | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/AppleTLSSession.cc b/src/AppleTLSSession.cc index 6ac36094..267704dd 100644 --- a/src/AppleTLSSession.cc +++ b/src/AppleTLSSession.cc @@ -366,17 +366,22 @@ int AppleTLSSession::closeConnection() } int AppleTLSSession::checkDirection() { - if (writeBuffered_) { - return TLS_WANT_WRITE; - } + // See: https://github.com/tatsuhiro-t/aria2/pull/61#issuecomment-16051793 if (state_ == st_connected) { + // Need to check read first, as SocketCore kinda expects this size_t buffered; lastError_ = SSLGetBufferedReadSize(sslCtx_, &buffered); if (lastError_ == noErr && buffered) { return TLS_WANT_READ; } } - return 0; + + if (writeBuffered_) { + return TLS_WANT_WRITE; + } + + // Default to WANT_READ, as SocketCore kinda expects this + return TLS_WANT_READ; } ssize_t AppleTLSSession::writeData(const void* data, size_t len) -- cgit