diff --git a/CHANGELOG.md b/CHANGELOG.md index a1add282..d9d40113 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,6 @@ Version XXX: +* Fix async_detect_ssl with use_awaitable * Add clang coroutines-ts to circleci config -------------------------------------------------------------------------------- diff --git a/include/boost/beast/core/detect_ssl.hpp b/include/boost/beast/core/detect_ssl.hpp index e0b4cd45..644318de 100644 --- a/include/boost/beast/core/detect_ssl.hpp +++ b/include/boost/beast/core/detect_ssl.hpp @@ -374,13 +374,13 @@ struct run_detect_ssl_op void operator()( DetectHandler&& h, AsyncReadStream* s, // references are passed as pointers - DynamicBuffer& b) + DynamicBuffer* b) { detect_ssl_op< typename std::decay::type, AsyncReadStream, DynamicBuffer>( - std::forward(h), *s, b); + std::forward(h), *s, *b); } }; @@ -439,7 +439,7 @@ async_detect_ssl( detail::run_detect_ssl_op{}, token, &stream, // pass the reference by pointer - buffer); + &buffer); } //] diff --git a/test/beast/core/detect_ssl.cpp b/test/beast/core/detect_ssl.cpp index 7e457414..1155fb15 100644 --- a/test/beast/core/detect_ssl.cpp +++ b/test/beast/core/detect_ssl.cpp @@ -16,6 +16,11 @@ #include #include #include +#if BOOST_ASIO_HAS_CO_AWAIT +#include +#include +#include +#endif namespace boost { namespace beast { @@ -166,12 +171,25 @@ public: } } +#if BOOST_ASIO_HAS_CO_AWAIT + void testAwaitableCompiles(test::stream& stream, flat_buffer& b) + { + static_assert( + std::is_same_v< + net::awaitable, decltype( + async_detect_ssl(stream, b, net::use_awaitable))>); + } +#endif + void run() override { testDetect(); testRead(); testAsyncRead(); +#if BOOST_ASIO_HAS_CO_AWAIT + boost::ignore_unused(&detect_ssl_test::testAwaitableCompiles); +#endif } };