diff options
Diffstat (limited to 'boost/asio/ssl/detail/impl/engine.ipp')
-rw-r--r-- | boost/asio/ssl/detail/impl/engine.ipp | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/boost/asio/ssl/detail/impl/engine.ipp b/boost/asio/ssl/detail/impl/engine.ipp index a7da0c1967..5aa9b5a68a 100644 --- a/boost/asio/ssl/detail/impl/engine.ipp +++ b/boost/asio/ssl/detail/impl/engine.ipp @@ -2,7 +2,7 @@ // ssl/detail/impl/engine.ipp // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2012 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2014 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -39,7 +39,8 @@ engine::engine(SSL_CTX* context) { if (!ssl_) { - boost::system::error_code ec(::ERR_get_error(), + boost::system::error_code ec( + static_cast<int>(::ERR_get_error()), boost::asio::error::get_ssl_category()); boost::asio::detail::throw_error(ec, "engine"); } @@ -83,6 +84,15 @@ boost::system::error_code engine::set_verify_mode( return ec; } +boost::system::error_code engine::set_verify_depth( + int depth, boost::system::error_code& ec) +{ + ::SSL_set_verify_depth(ssl_, depth); + + ec = boost::system::error_code(); + return ec; +} + boost::system::error_code engine::set_verify_callback( verify_callback_base* callback, boost::system::error_code& ec) { @@ -166,7 +176,7 @@ boost::asio::mutable_buffers_1 engine::get_output( { int length = ::BIO_read(ext_bio_, boost::asio::buffer_cast<void*>(data), - boost::asio::buffer_size(data)); + static_cast<int>(boost::asio::buffer_size(data))); return boost::asio::buffer(data, length > 0 ? static_cast<std::size_t>(length) : 0); @@ -177,7 +187,7 @@ boost::asio::const_buffer engine::put_input( { int length = ::BIO_write(ext_bio_, boost::asio::buffer_cast<const void*>(data), - boost::asio::buffer_size(data)); + static_cast<int>(boost::asio::buffer_size(data))); return boost::asio::buffer(data + (length > 0 ? static_cast<std::size_t>(length) : 0)); @@ -228,7 +238,7 @@ engine::want engine::perform(int (engine::* op)(void*, std::size_t), std::size_t pending_output_before = ::BIO_ctrl_pending(ext_bio_); int result = (this->*op)(data, length); int ssl_error = ::SSL_get_error(ssl_, result); - int sys_error = ::ERR_get_error(); + int sys_error = static_cast<int>(::ERR_get_error()); std::size_t pending_output_after = ::BIO_ctrl_pending(ext_bio_); if (ssl_error == SSL_ERROR_SSL) @@ -296,12 +306,14 @@ int engine::do_shutdown(void*, std::size_t) int engine::do_read(void* data, std::size_t length) { - return ::SSL_read(ssl_, data, length < INT_MAX ? length : INT_MAX); + return ::SSL_read(ssl_, data, + length < INT_MAX ? static_cast<int>(length) : INT_MAX); } int engine::do_write(void* data, std::size_t length) { - return ::SSL_write(ssl_, data, length < INT_MAX ? length : INT_MAX); + return ::SSL_write(ssl_, data, + length < INT_MAX ? static_cast<int>(length) : INT_MAX); } #endif // !defined(BOOST_ASIO_ENABLE_OLD_SSL) |