diff --git a/include/boost/asio/ssl/detail/impl/engine.ipp b/include/boost/asio/ssl/detail/impl/engine.ipp index 9142a5df3..29948d5f5 100644 --- a/include/boost/asio/ssl/detail/impl/engine.ipp +++ b/include/boost/asio/ssl/detail/impl/engine.ipp @@ -17,6 +17,7 @@ #include +#include #include #include #include @@ -274,8 +275,15 @@ engine::want engine::perform(int (engine::* op)(void*, std::size_t), ec = boost::asio::error::eof; return want_nothing; } + else if (ssl_error == SSL_ERROR_ZERO_RETURN) + { + ec = boost::asio::error::eof; + return want_nothing; + } else { + BOOST_ASIO_ASSERT(result > 0); + //if(result <= 0) std::cerr << "result <= 0, ssl_error = " << ssl_error << std::endl; ec = boost::system::error_code(); return want_nothing; }