123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- //
- // Copyright (c) 2016-2019 Vinnie Falco (vinnie dot falco at gmail 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)
- //
- // Official repository: https://github.com/boostorg/beast
- //
- #ifndef BOOST_BEAST_CORE_SSL_STREAM_HPP
- #define BOOST_BEAST_CORE_SSL_STREAM_HPP
- #include <boost/beast/core/detail/config.hpp>
- // This include is necessary to work with `ssl::stream` and `boost::beast::websocket::stream`
- #include <boost/beast/websocket/ssl.hpp>
- // VFALCO We include this because anyone who uses ssl will
- // very likely need to check for ssl::error::stream_truncated
- #include <boost/asio/ssl/error.hpp>
- #include <boost/asio/ssl/stream.hpp>
- namespace boost {
- namespace beast {
- /** (Deprecated: Use asio::ssl::stream instead.) Provides stream-oriented functionality using OpenSSL
- */
- template<class NextLayer>
- struct ssl_stream : net::ssl::stream<NextLayer>
- {
- using net::ssl::stream<NextLayer>::stream;
- };
- #if ! BOOST_BEAST_DOXYGEN
- template<class SyncStream>
- void
- teardown(
- boost::beast::role_type role,
- ssl_stream<SyncStream>& stream,
- boost::system::error_code& ec)
- {
- // Just forward it to the underlying ssl::stream
- using boost::beast::websocket::teardown;
- teardown(role, static_cast<net::ssl::stream<SyncStream>&>(stream), ec);
- }
- template<class AsyncStream,
- typename TeardownHandler = net::default_completion_token_t<beast::executor_type<AsyncStream>>>
- void
- async_teardown(
- boost::beast::role_type role,
- ssl_stream<AsyncStream>& stream,
- TeardownHandler&& handler = net::default_completion_token_t<beast::executor_type<AsyncStream>>{})
- {
- // Just forward it to the underlying ssl::stream
- using boost::beast::websocket::async_teardown;
- async_teardown(role, static_cast<net::ssl::stream<AsyncStream>&>(stream),
- std::forward<TeardownHandler>(handler));
- }
- #endif
- } // beast
- } // boost
- #endif
|