diff --git a/include/boost/asio/ssl/detail/openssl_operation.hpp b/include/boost/asio/ssl/detail/openssl_operation.hpp index 42699a5c..0f7ec381 100644 --- a/include/boost/asio/ssl/detail/openssl_operation.hpp +++ b/include/boost/asio/ssl/detail/openssl_operation.hpp @@ -159,6 +159,10 @@ public: 0; int sys_error_code = ERR_get_error(); + if (error_code == SSL_ERROR_SSL) + return handler_(boost::system::error_code( + error_code, boost::asio::error::get_ssl_category()), rc); + bool is_read_needed = (error_code == SSL_ERROR_WANT_READ); bool is_write_needed = (error_code == SSL_ERROR_WANT_WRITE || ::BIO_ctrl_pending( ssl_bio_ ));