Browse Source

* Merging revisions r43693 from trunk:
------------------------------------------------------------------------
r43693 | michael | 2019-12-15 18:13:08 +0100 (Sun, 15 Dec 2019) | 1 line

* Fix bug #36443, patch from Andrew H. Allow non-blocking read
------------------------------------------------------------------------

git-svn-id: branches/fixes_3_2@43728 -

michael 5 years ago
parent
commit
4e1e808c25
1 changed files with 2 additions and 0 deletions
  1. 2 0
      packages/openssl/src/opensslsockets.pp

+ 2 - 0
packages/openssl/src/opensslsockets.pp

@@ -298,6 +298,8 @@ begin
   repeat
   repeat
     Result:=FSSL.Read(@Buffer ,Count);
     Result:=FSSL.Read(@Buffer ,Count);
     e:=FSSL.GetError(Result);
     e:=FSSL.GetError(Result);
+    if (e=SSL_ERROR_WANT_READ) and (Socket.IOTimeout>0) then
+      e:=SSL_ERROR_ZERO_RETURN;
   until Not (e in [SSL_ERROR_WANT_READ,SSL_ERROR_WANT_WRITE]);
   until Not (e in [SSL_ERROR_WANT_READ,SSL_ERROR_WANT_WRITE]);
   if (E=SSL_ERROR_ZERO_RETURN) then
   if (E=SSL_ERROR_ZERO_RETURN) then
     Result:=0
     Result:=0