// // 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_WEBSOCKET_IMPL_SSL_HPP #define BOOST_BEAST_WEBSOCKET_IMPL_SSL_HPP #include namespace boost { namespace beast { /* See http://stackoverflow.com/questions/32046034/what-is-the-proper-way-to-securely-disconnect-an-asio-ssl-socket/32054476#32054476 Behavior of ssl::stream regarding close_notify If the remote host calls async_shutdown then the local host's async_read will complete with eof. If both hosts call async_shutdown then the calls to async_shutdown will complete with eof. */ template void teardown( role_type, net::ssl::stream& stream, error_code& ec) { stream.shutdown(ec); } template< class AsyncStream, class TeardownHandler> void async_teardown( role_type, net::ssl::stream& stream, TeardownHandler&& handler) { stream.async_shutdown( std::forward(handler)); } } // beast } // boost #endif