--- boost/asio/ssl/detail/engine.hpp 2012-03-10 22:52:20.000000000 +0100 +++ /opt/local/include/boost/asio/ssl/detail/engine.hpp 2013-01-06 01:18:09.000000000 +0100 @@ -94,7 +94,7 @@ boost::system::error_code& ec, std::size_t& bytes_transferred); // Get output data to be written to the transport. - BOOST_ASIO_DECL boost::asio::mutable_buffers_1 get_output( + BOOST_ASIO_DECL boost::asio::const_buffers_1 get_output( const boost::asio::mutable_buffer& data); // Put input data that was read from the transport. --- boost/asio/ssl/detail/impl/engine.ipp 2013-01-06 13:53:46.000000000 +0100 +++ /opt/local/include/boost/asio/ssl/detail/impl/engine.ipp 2013-01-06 01:19:40.000000000 +0100 @@ -162,14 +161,14 @@ boost::asio::buffer_size(data), ec, &bytes_transferred); } -boost::asio::mutable_buffers_1 engine::get_output( +boost::asio::const_buffers_1 engine::get_output( const boost::asio::mutable_buffer& data) { int length = ::BIO_read(ext_bio_, boost::asio::buffer_cast(data), - static_cast(boost::asio::buffer_size(data))); + boost::asio::buffer_size(data)); - return boost::asio::buffer(data, + return boost::asio::buffer((const void*)boost::asio::buffer_cast(data), length > 0 ? static_cast(length) : 0); } @@ -178,7 +177,7 @@ { int length = ::BIO_write(ext_bio_, boost::asio::buffer_cast(data), - static_cast(boost::asio::buffer_size(data))); + boost::asio::buffer_size(data)); return boost::asio::buffer(data + (length > 0 ? static_cast(length) : 0));