Browse Source

LibsslTLSSession: Treat 0 from readData as EOF

Tatsuhiro Tsujikawa 11 years ago
parent
commit
83c78c497b
1 changed files with 10 additions and 6 deletions
  1. 10 6
      src/LibsslTLSSession.cc

+ 10 - 6
src/LibsslTLSSession.cc

@@ -139,14 +139,18 @@ ssize_t OpenSSLTLSSession::readData(void* data, size_t len)
   if(rv_ <= 0) {
     if(wouldblock(ssl_, rv_)) {
       return TLS_ERR_WOULDBLOCK;
-    } else {
-      return TLS_ERR_ERROR;
     }
-  } else {
-    ssize_t ret = rv_;
-    rv_ = 1;
-    return ret;
+
+    if(rv_ == 0) {
+      return 0;
+    }
+
+    return TLS_ERR_ERROR;
   }
+
+  ssize_t ret = rv_;
+  rv_ = 1;
+  return ret;
 }
 
 int OpenSSLTLSSession::handshake()