Commit Graph
1024 Commits
Author SHA1 Message Date
Mohammad Nejati 9c7777e7f0 ssl_stream and flat_stream are deprecated 2024-05-31 16:45:52 +03:30
Mohammad Nejati bd804b6520 ssl_stream does not use flat_stream
We no longer need to use flat_stream to improve write performance, as
Asio now linearizes scatter/gather I/O in ssl::stream:
https://github.com/chriskohlhoff/asio/commit/17637a48ccbfa2f63941d8393a7c8316a8df4a79
2024-05-31 16:45:52 +03:30
Orgad Shaneh 55035d17c5 zlib: Annotate fallthrough case 2024-05-20 13:45:40 +03:30
Mohammad Nejati 2dcdef3890 Handle expired timers in basic_stream transfer_op
Previously, the code only handled expired timers when the buffer was empty.
2024-05-13 22:17:17 +03:30
Mohammad Nejati 59310dddac Fix ambiguity in test::basic_stream constructor overloads 2024-05-11 13:20:25 +03:30
Ruslan Zakirov 3461ad1a2b fix asserts, it's possible that we reach code only with 3 symbols
This happens when:
* chunked encoding
* body is empty
* chunk has no extensions
* and put calls are really weird
2024-05-10 17:28:19 +03:30
Mohammad Nejati 98b8be489f Exclude Asio executor type traits from docs 2024-04-05 21:29:43 +03:30
Mohammad Nejati 54ad4ba714 Fix dereferenced null pointer warning in test::immediate_executor 2024-03-31 18:59:36 +03:30
Mohammad Nejati bcd65c828e Fix unused parameter warnings in tests 2024-03-31 18:59:36 +03:30
Mohammad Nejati 26714aceee Specialize traits for beast::test::immediate_executor 2024-03-28 18:08:52 +03:30
Mohammad Nejati 1f20c4b29c Set version to 353 2024-02-20 18:27:27 +03:30
Mohammad Nejati e42cf8a1e4 Remove BOOST_BEAST_USE_STD_STRING_VIEW deprecation warning
Closes #2594
2024-02-14 21:15:55 +03:30
Mohammad Nejati 40c22cbfa7 Update documentation for websocket::permessage_deflate
Resolves #962
2024-02-14 11:09:41 +03:30
Mohammad Nejati 7d4da621ac Update bytes_transferred documentation for http reads operations 2024-02-12 18:56:48 +03:30
Mohammad Nejati f8ff44d072 Improve documentation of http::serializer
Resolves #2221
2024-02-09 23:32:58 +03:30
Mohammad Nejati e0a9da265f buffers_adaptor::subrange conforms to concept
Fixes #2459
2024-02-07 00:11:14 +03:30
Mohammad Nejati 25105e476a Update status code list to conform with IANA registry
https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml

Resolves #2729
2024-02-06 18:09:48 +03:30
Mohammad Nejati dc8798c917 Fix zlib name conflicts
Fixes #2809
2024-01-31 17:53:19 +03:30
Mohammad Nejati 5f088b72ca Clarify teardown and async_teardown are customization points
Addresses #2479
2024-01-26 12:56:35 +03:30
Mohammad Nejati 3b837c6982 Fix unreachable code warning in buffers_cat.hpp
Fixes #2678
2024-01-22 19:55:56 +03:30
Mohammad Nejati c9858357f8 Fix documentation for basic_stream::expires_after
Resolves #2664
2024-01-18 19:39:39 +03:30
Mohammad Nejati 9d05ef58d1 Set version to 352 2024-01-11 18:22:12 +03:30
Mohammad Nejati ea424f1da6 Fix the issue of paragraph separation in the documentation
Fixes #2792
2024-01-11 13:11:41 +03:30
Mohammad Nejati a0a80359fe Fix list format in documentation for http::message::prepare_payload 2024-01-07 11:01:45 +03:30
Mohammad Nejati b7f635dce0 Remove extra spaces from documentation 2024-01-06 07:50:11 +00:00
Mohammad Nejati d3afd7fad6 Improve documentation for http::message::prepare_payload()
Fixes #603
2024-01-06 09:11:10 +03:30
Mohammad Nejati 2216adc013 Stronger buffer contract on flat_buffer and flat_static_buffer
Fixes #1513
2024-01-05 12:31:22 +03:30
Mohammad Nejati 9e16754dd5 Add non-allocating overload for error category message function
Fixes #2646
2024-01-03 18:21:52 +03:30
Mohammad 0d1e2d64f8 Replace beast::bind_front_handler uses with asio::prepend 2023-12-30 08:47:32 +03:30
Mohammad Nejati 3df5d980d0 Specialize asio::associator for bind_wrapper and bind_front_wrapper 2023-12-29 13:10:30 +03:30
Mohammad Nejati 5886653683 Set version to 351 2023-11-22 09:14:02 +03:30
Mohammad Nejati dd3f692e7d Use the explicit type std::size_t when completing the transfer_op
Fixes #2766
2023-11-15 12:09:23 +03:30
Mohammad 49ec654b5f Set version to 350 2023-10-31 19:29:23 +03:30
Mohammad 667e9ea251 Remove detail::bind_default_executor helper 2023-10-26 15:36:30 +03:30
Klemens Morgenstern 3996cae768 allocate & invoke hooks are removed. 2023-10-26 12:33:24 +03:30
Mohammad a7927988ea Update documentation for websocket::stream::async_write_some
Closes #2755
2023-10-26 08:56:59 +03:30
Fernando Pelliccioni 19976ff016 Set version to 349. 2023-10-13 10:52:15 +02:00
Klemens Morgenstern dd875463ff immediate_executor is supported. (#2672) 2023-10-13 05:33:23 -03:00
Shukant Pal 177a1222a6 Fix typo in documentation 2023-10-12 13:39:36 +08:00
Mohammad 45d4f7f306 Replace BOOST_ASIO_INITFN_RESULT_TYPE with BOOST_ASIO_INITFN_AUTO_RESULT_TYPE
asio::deferred doesn't work with BOOST_ASIO_INITFN_RESULT_TYPE
Fixes #2727.
2023-09-05 08:54:08 +03:30
Klemens Morgenstern 35d533299c work_guard has license info. 2023-08-18 18:46:28 +08:00
Klemens Morgenstern 2952b670d8 Handler requirements of ping/pong are correct.
Closes #2713
2023-08-18 18:45:39 +08:00
Klemens Morgenstern 915b80a157 set minimum gcc version to 5.0.
This is due to C++98 support being dropped, so 4.8 fails other libraries C++11 detection.
2023-08-17 12:12:43 +08:00
Klemens Morgenstern f9433d22d0 Set version to 348. 2023-06-28 12:35:52 +08:00
Klemens Morgenstern 72c2eeb398 ssl_stream doesn't use BOOST_BEAST_ASYNC_TPARAM1 due to clang errors.
Closes #2661
2023-06-20 10:40:20 +08:00
Ed CatmurandEd Catmur a23e24ffee Reimplement (C++23) deprecated std::aligned_storage (#2680)
Use boost::aligned_storage instead of std::.

The latter is deprecated in C++23.

---------

Co-authored-by: Ed Catmur <edward.catmur@mavensecurities.com>
2023-05-15 09:03:10 +08:00
Edward Nolan cd6b79db5a headers using std::int8_t et al. include <csdint>. 2023-05-15 08:49:53 +08:00
Michiel De Witte a4718ee87b change upgrade to Upgrade as connection header value 2023-05-12 18:46:55 +08:00
Klemens Morgenstern 3dddb5fecf Set version to 347. 2023-02-20 14:06:17 +08:00
Edward NolanandEdward Nolan 8dc6daa507 Address bind_handler ambiguous overload error when boost/bind/std_placeholders.hpp is included (#2638)
* Address bind_handler ambiguous overload error when boost/bind/std_placeholders.hpp is included

Previously, the implementation of bind_handler made the assumption
that the trait boost::is_placeholder would be false for types
corresponding to values in the std::placeholders namespace.

However, boost/bind commit c85b31e3d200dda2a73cf0027a82c6d8e29066f8,
`Support use of standard placeholders with boost::bind`, added a new
header, boost/bind/std_placeholders.hpp, which adds specializations to
 boost::is_placeholder for std::placeholders types.

When this header is included before a use of boost::bind_handler, it
results in compiler errors like the following, due to an internal
helper function having overloads for
enable_if<boost::is_placeholder...> and
enable_if<std::is_placeholder...>, which were previously assumed to be
mutually exclusive, but for which both conditions now are true:

../../../boost/beast/core/detail/bind_handler.hpp:126:18: error: call of overloaded 'extract(std::_Placeholder<1>, boost::beast::detail::tuple<int&&>)' is ambiguous
  126 |         h(extract(detail::get<S>(std::move(args)),
      |           ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  127 |             std::forward<ValsTuple>(vals))...);
      |             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This header is included in boost/bind/bind.hpp, and is transitively
included by headers in many boost libraries including:

algorithm
asio
atomic
graph
msm
multi_index
property_tree
ptr_container
python
signals2
test
thread

Making it possible that an include from one of these libraries will
randomly cause bind_handler to fail to compile.

This change addresses the issue by eliminating one of the ambiguous
overloads and ensuring that boost/bind/std_placeholders.hpp is
included in the bind_handler implementation file, so that the
enable_if<boost::is_placeholder...> overload can handle both
boost::placeholders and std::placeholders values. It also explicitly
adds a boost/bind/std_placeholders.hpp include to the bind_handler
unit test to prevent this issue from regressing.

* Address boost/bind/std_placeholders.hpp feature guards

boost/bind/std_placeholders.hpp has the following feature guards:

if !defined(BOOST_NO_CXX11_HDR_FUNCTIONAL) && !defined(BOOST_NO_CXX11_DECLTYPE) && !defined(BOOST_NO_CXX11_HDR_TYPE_TRAITS)

If this check fails, it will not detect std::placeholders values as
placeholders, making the previous solution fail.

This update restores the std::is_placeholder overload and adjusts the
SFINAE for the boost::is_placeholder overload so that it triggers only
if std::is_placeholder is false, making bind_handler work regardless
of whether std_placeholders.hpp's feature guard applies.

---------

Co-authored-by: Edward Nolan <enolan@maystreet.com>
2023-02-17 13:50:04 +08:00