SSL_read() returning SSL_ERROR_SYSCALL with errno 11EAGAIN

John Unsworth John.Unsworth at
Mon Apr 29 14:54:23 UTC 2019

We are using OpenSSL 1.1.0h on Linux to send operations to LDAP servers. We use SSL_read() to receive the replies on a non-blocking socket. The vast majority of times SSL_read() returns >0, SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE as per the spec. However we are very occasionally seeing SSL_ERROR_SYSCALL with errno 11 (EAGAIN) which would seem to be the result of a platform socket read(() or write() when blocking would occur. Is this expected behaviour? We have changed our code to treat this as SSL_ERROR_WANT_READ or SSL_WANT_WRITE depending on the result of SSL_want_write(). Are we correct?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the openssl-users mailing list