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?

Regards,
John.

Reply via email to