forked from boostorg/beast
net::ssl::stream is canonical in examples
We no longer need to use beast::ssl_stream to improve write performance, as Asio now linearizes scatter/gather I/O in ssl::stream: https://github.com/chriskohlhoff/asio/commit/17637a48ccbfa2f63941d8393a7c8316a8df4a79
This commit is contained in:
committed by
Mohammad Nejati
parent
bd804b6520
commit
03b792faac
+2
-4
@@ -17,15 +17,13 @@
|
||||
|
||||
#include <boost/beast/core.hpp>
|
||||
#include <boost/beast/http.hpp>
|
||||
#include <boost/beast/ssl.hpp>
|
||||
#include <boost/beast/version.hpp>
|
||||
#include <boost/asio/ssl.hpp>
|
||||
#include <boost/asio/strand.hpp>
|
||||
#include <boost/asio/system_executor.hpp>
|
||||
#include <cstdlib>
|
||||
#include <functional>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
namespace beast = boost::beast; // from <boost/beast.hpp>
|
||||
namespace http = beast::http; // from <boost/beast/http.hpp>
|
||||
@@ -46,7 +44,7 @@ fail(beast::error_code ec, char const* what)
|
||||
class session : public std::enable_shared_from_this<session>
|
||||
{
|
||||
tcp::resolver resolver_;
|
||||
beast::ssl_stream<beast::tcp_stream> stream_;
|
||||
ssl::stream<beast::tcp_stream> stream_;
|
||||
beast::flat_buffer buffer_; // (Must persist between reads)
|
||||
http::request<http::empty_body> req_;
|
||||
http::response<http::string_body> res_;
|
||||
|
||||
@@ -17,14 +17,12 @@
|
||||
|
||||
#include <boost/beast/core.hpp>
|
||||
#include <boost/beast/http.hpp>
|
||||
#include <boost/beast/ssl.hpp>
|
||||
#include <boost/beast/version.hpp>
|
||||
#include <boost/asio/ssl.hpp>
|
||||
#include <boost/asio/strand.hpp>
|
||||
#include <cstdlib>
|
||||
#include <functional>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
namespace beast = boost::beast; // from <boost/beast.hpp>
|
||||
namespace http = beast::http; // from <boost/beast/http.hpp>
|
||||
@@ -45,7 +43,7 @@ fail(beast::error_code ec, char const* what)
|
||||
class session : public std::enable_shared_from_this<session>
|
||||
{
|
||||
tcp::resolver resolver_;
|
||||
beast::ssl_stream<beast::tcp_stream> stream_;
|
||||
ssl::stream<beast::tcp_stream> stream_;
|
||||
beast::flat_buffer buffer_; // (Must persist between reads)
|
||||
http::request<http::empty_body> req_;
|
||||
http::response<http::string_body> res_;
|
||||
|
||||
@@ -15,18 +15,17 @@
|
||||
|
||||
#include <boost/beast/core.hpp>
|
||||
#include <boost/beast/http.hpp>
|
||||
#include <boost/beast/ssl.hpp>
|
||||
#include <boost/beast/version.hpp>
|
||||
#include <boost/asio/as_tuple.hpp>
|
||||
#include <boost/asio/awaitable.hpp>
|
||||
#include <boost/asio/co_spawn.hpp>
|
||||
#include <boost/asio/detached.hpp>
|
||||
#include <boost/asio/ssl.hpp>
|
||||
#include <boost/asio/use_awaitable.hpp>
|
||||
|
||||
#if defined(BOOST_ASIO_HAS_CO_AWAIT)
|
||||
|
||||
#include <cstdlib>
|
||||
#include <functional>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include "example/common/root_certificates.hpp"
|
||||
@@ -58,7 +57,7 @@ do_session(
|
||||
using tcp_stream = typename beast::tcp_stream::rebind_executor<executor_with_default>::other;
|
||||
|
||||
// We construct the ssl stream from the already rebound tcp_stream.
|
||||
beast::ssl_stream<tcp_stream> stream{
|
||||
ssl::stream<tcp_stream> stream{
|
||||
net::use_awaitable.as_default_on(beast::tcp_stream(co_await net::this_coro::executor)),
|
||||
ctx};
|
||||
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
|
||||
#include <boost/beast/core.hpp>
|
||||
#include <boost/beast/http.hpp>
|
||||
#include <boost/beast/ssl.hpp>
|
||||
#include <boost/beast/version.hpp>
|
||||
#include <boost/asio/spawn.hpp>
|
||||
#include <boost/asio/ssl.hpp>
|
||||
#include <cstdlib>
|
||||
#include <functional>
|
||||
#include <iostream>
|
||||
@@ -55,7 +55,7 @@ do_session(
|
||||
|
||||
// These objects perform our I/O
|
||||
tcp::resolver resolver(ioc);
|
||||
beast::ssl_stream<beast::tcp_stream> stream(ioc, ctx);
|
||||
ssl::stream<beast::tcp_stream> stream(ioc, ctx);
|
||||
|
||||
// Set SNI Hostname (many hosts need this to handshake successfully)
|
||||
if(! SSL_set_tlsext_host_name(stream.native_handle(), host.c_str()))
|
||||
|
||||
@@ -17,15 +17,12 @@
|
||||
|
||||
#include <boost/beast/core.hpp>
|
||||
#include <boost/beast/http.hpp>
|
||||
#include <boost/beast/ssl.hpp>
|
||||
#include <boost/beast/version.hpp>
|
||||
#include <boost/asio/connect.hpp>
|
||||
#include <boost/asio/ip/tcp.hpp>
|
||||
#include <boost/asio/ssl/error.hpp>
|
||||
#include <boost/asio/ssl/stream.hpp>
|
||||
#include <boost/asio/ssl.hpp>
|
||||
#include <cstdlib>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
|
||||
namespace beast = boost::beast; // from <boost/beast.hpp>
|
||||
namespace http = beast::http; // from <boost/beast/http.hpp>
|
||||
@@ -67,7 +64,7 @@ int main(int argc, char** argv)
|
||||
|
||||
// These objects perform our I/O
|
||||
tcp::resolver resolver(ioc);
|
||||
beast::ssl_stream<beast::tcp_stream> stream(ioc, ctx);
|
||||
ssl::stream<beast::tcp_stream> stream(ioc, ctx);
|
||||
|
||||
// Set SNI Hostname (many hosts need this to handshake successfully)
|
||||
if(! SSL_set_tlsext_host_name(stream.native_handle(), host))
|
||||
|
||||
@@ -17,14 +17,13 @@
|
||||
|
||||
#include <boost/beast/core.hpp>
|
||||
#include <boost/beast/http.hpp>
|
||||
#include <boost/beast/ssl.hpp>
|
||||
#include <boost/beast/version.hpp>
|
||||
#include <boost/asio/dispatch.hpp>
|
||||
#include <boost/asio/ssl.hpp>
|
||||
#include <boost/asio/strand.hpp>
|
||||
#include <boost/config.hpp>
|
||||
#include <algorithm>
|
||||
#include <cstdlib>
|
||||
#include <functional>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
@@ -236,7 +235,7 @@ fail(beast::error_code ec, char const* what)
|
||||
// Handles an HTTP server connection
|
||||
class session : public std::enable_shared_from_this<session>
|
||||
{
|
||||
beast::ssl_stream<beast::tcp_stream> stream_;
|
||||
ssl::stream<beast::tcp_stream> stream_;
|
||||
beast::flat_buffer buffer_;
|
||||
std::shared_ptr<std::string const> doc_root_;
|
||||
http::request<http::string_body> req_;
|
||||
|
||||
@@ -17,10 +17,10 @@
|
||||
|
||||
#include <boost/beast/core.hpp>
|
||||
#include <boost/beast/http.hpp>
|
||||
#include <boost/beast/ssl.hpp>
|
||||
#include <boost/beast/version.hpp>
|
||||
#include <boost/asio/detached.hpp>
|
||||
#include <boost/asio/spawn.hpp>
|
||||
#include <boost/asio/ssl.hpp>
|
||||
#include <boost/config.hpp>
|
||||
#include <algorithm>
|
||||
#include <cstdlib>
|
||||
@@ -235,7 +235,7 @@ fail(beast::error_code ec, char const* what)
|
||||
// Handles an HTTP server connection
|
||||
void
|
||||
do_session(
|
||||
beast::ssl_stream<beast::tcp_stream>& stream,
|
||||
ssl::stream<beast::tcp_stream>& stream,
|
||||
std::shared_ptr<std::string const> const& doc_root,
|
||||
net::yield_context yield)
|
||||
{
|
||||
@@ -342,7 +342,7 @@ do_listen(
|
||||
acceptor.get_executor(),
|
||||
std::bind(
|
||||
&do_session,
|
||||
beast::ssl_stream<beast::tcp_stream>(
|
||||
ssl::stream<beast::tcp_stream>(
|
||||
std::move(socket), ctx),
|
||||
doc_root,
|
||||
std::placeholders::_1),
|
||||
|
||||
@@ -17,14 +17,13 @@
|
||||
|
||||
#include <boost/beast/core.hpp>
|
||||
#include <boost/beast/http.hpp>
|
||||
#include <boost/beast/ssl.hpp>
|
||||
#include <boost/beast/version.hpp>
|
||||
#include <boost/asio/dispatch.hpp>
|
||||
#include <boost/asio/ssl.hpp>
|
||||
#include <boost/asio/strand.hpp>
|
||||
#include <boost/config.hpp>
|
||||
#include <algorithm>
|
||||
#include <cstdlib>
|
||||
#include <functional>
|
||||
#include <iostream>
|
||||
#include <memory>
|
||||
#include <string>
|
||||
@@ -393,7 +392,7 @@ class ssl_session
|
||||
: public session<ssl_session>
|
||||
, public std::enable_shared_from_this<ssl_session>
|
||||
{
|
||||
beast::ssl_stream<beast::tcp_stream> stream_;
|
||||
ssl::stream<beast::tcp_stream> stream_;
|
||||
|
||||
public:
|
||||
// Create the session
|
||||
@@ -410,7 +409,7 @@ public:
|
||||
}
|
||||
|
||||
// Called by the base class
|
||||
beast::ssl_stream<beast::tcp_stream>&
|
||||
ssl::stream<beast::tcp_stream>&
|
||||
stream()
|
||||
{
|
||||
return stream_;
|
||||
|
||||
@@ -17,10 +17,10 @@
|
||||
|
||||
#include <boost/beast/core.hpp>
|
||||
#include <boost/beast/http.hpp>
|
||||
#include <boost/beast/ssl.hpp>
|
||||
#include <boost/beast/version.hpp>
|
||||
#include <boost/asio/coroutine.hpp>
|
||||
#include <boost/asio/dispatch.hpp>
|
||||
#include <boost/asio/ssl.hpp>
|
||||
#include <boost/asio/strand.hpp>
|
||||
#include <boost/config.hpp>
|
||||
#include <algorithm>
|
||||
@@ -239,7 +239,7 @@ class session
|
||||
: public boost::asio::coroutine
|
||||
, public std::enable_shared_from_this<session>
|
||||
{
|
||||
beast::ssl_stream<beast::tcp_stream> stream_;
|
||||
ssl::stream<beast::tcp_stream> stream_;
|
||||
beast::flat_buffer buffer_;
|
||||
std::shared_ptr<std::string const> doc_root_;
|
||||
http::request<http::string_body> req_;
|
||||
|
||||
@@ -17,9 +17,9 @@
|
||||
|
||||
#include <boost/beast/core.hpp>
|
||||
#include <boost/beast/http.hpp>
|
||||
#include <boost/beast/ssl.hpp>
|
||||
#include <boost/beast/version.hpp>
|
||||
#include <boost/asio/ip/tcp.hpp>
|
||||
#include <boost/asio/ssl.hpp>
|
||||
#include <boost/asio/ssl/stream.hpp>
|
||||
#include <boost/config.hpp>
|
||||
#include <cstdlib>
|
||||
@@ -220,7 +220,7 @@ do_session(
|
||||
beast::error_code ec;
|
||||
|
||||
// Construct the stream around the socket
|
||||
beast::ssl_stream<tcp::socket&> stream{socket, ctx};
|
||||
ssl::stream<tcp::socket&> stream{socket, ctx};
|
||||
|
||||
// Perform the SSL handshake
|
||||
stream.handshake(ssl::stream_base::server, ec);
|
||||
|
||||
Reference in New Issue
Block a user