소스 검색

Use SSL_ERROR_ZERO_RETURN to check if the SSL peer is closed.

yhirose 2 년 전
부모
커밋
1ebb8412c5
1개의 변경된 파일2개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 1
      httplib.h

+ 2 - 1
httplib.h

@@ -6765,7 +6765,8 @@ inline bool ClientImpl::process_request(Stream &strm, Request &req,
 #ifdef CPPHTTPLIB_OPENSSL_SUPPORT
   if (is_ssl()) {
     char buf[1];
-    if (SSL_peek(socket_.ssl, buf, 1) == 0) {
+    if (SSL_peek(socket_.ssl, buf, 1) == 0 &&
+        SSL_get_error(socket_.ssl, 0) == SSL_ERROR_ZERO_RETURN) {
       error = Error::SSLPeerCouldBeClosed_;
       return false;
     }