summaryrefslogtreecommitdiff
path: root/boost/asio/ssl/detail/impl/engine.ipp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/asio/ssl/detail/impl/engine.ipp')
-rw-r--r--boost/asio/ssl/detail/impl/engine.ipp10
1 files changed, 10 insertions, 0 deletions
diff --git a/boost/asio/ssl/detail/impl/engine.ipp b/boost/asio/ssl/detail/impl/engine.ipp
index 72f1c35689..a7da0c1967 100644
--- a/boost/asio/ssl/detail/impl/engine.ipp
+++ b/boost/asio/ssl/detail/impl/engine.ipp
@@ -18,7 +18,10 @@
#include <boost/asio/detail/config.hpp>
#if !defined(BOOST_ASIO_ENABLE_OLD_SSL)
+# include <boost/asio/detail/throw_error.hpp>
+# include <boost/asio/error.hpp>
# include <boost/asio/ssl/detail/engine.hpp>
+# include <boost/asio/ssl/error.hpp>
# include <boost/asio/ssl/verify_context.hpp>
#endif // !defined(BOOST_ASIO_ENABLE_OLD_SSL)
@@ -34,6 +37,13 @@ namespace detail {
engine::engine(SSL_CTX* context)
: ssl_(::SSL_new(context))
{
+ if (!ssl_)
+ {
+ boost::system::error_code ec(::ERR_get_error(),
+ boost::asio::error::get_ssl_category());
+ boost::asio::detail::throw_error(ec, "engine");
+ }
+
accept_mutex().init();
::SSL_set_mode(ssl_, SSL_MODE_ENABLE_PARTIAL_WRITE);