Commit Graph
1258 Commits
Author SHA1 Message Date
Vinnie Falco e4c2ae6384 Add test::fail_count to experimental 2018-05-02 08:32:09 -07:00
Vinnie Falco 59f01a158b Add test::error to experimental 2018-05-02 08:32:09 -07:00
Vinnie Falco 292801fef7 Add ssl_stream to experimental:
The ssl_stream wrapper provides C++11 move semantics for ssl::stream,
as well as incorporating the flat_stream workaround for a performance
problem with ssl::stream writes and buffer sequences having length
greater than one.
2018-05-02 08:32:09 -07:00
Vinnie Falco 6108cf3eb7 Add flat_stream to experimental:
This adds a new stream wrapper class template designed to address
a performance shortcoming of boost::asio::ssl::stream.
2018-05-02 08:32:07 -07:00
Vinnie Falco 46e658a91b Set version to 169 2018-04-30 19:49:46 -07:00
Vinnie Falco 90c01e82ca Use flat_stream in ssl_stream example code 2018-04-30 19:49:43 -07:00
Vinnie Falco c9a445a937 New flat_stream example class:
fix #1108

The `flat_stream` is a stream wrapper designed to overcome a
performance limitation of the `boost::asio::ssl::stream`
implementation. Specifically, when writing buffer sequences having
length greater than one, the `ssl::stream` implementation does
not use scatter-gather I/O and instead performs a kernel transition
for every buffer in the sequence.

The wrapper addresses this problem by allocating memory and
presenting the buffer sequence into a single buffer, using
some logic to determine when this allocation is advantageous
versus simply passing the buffers through as-is.

See Also:
https://github.com/boostorg/asio/issues/100
https://stackoverflow.com/questions/50026167/performance-drop-on-port-from-beast-1-0-0-b66-to-boost-1-67-0-beast
2018-04-30 19:49:42 -07:00
Vinnie Falco dcfd07f6f2 Use fully qualified namespace in BOOST_BEAST_HANDLER_INIT 2018-04-28 11:14:39 -07:00
Vinnie Falco c592782a1b Simplify some type trait expressions
fix #466
2018-04-26 17:30:46 -07:00
Vinnie Falco 22e3f014ad Temporarily disable /permissive-:
This is a work-around for the currently broken Boost.Range.
2018-04-26 17:21:03 -07:00
Vinnie Falco 42ac536f9b Refactor HTTP write_op implementation
fix #764
2018-04-25 14:07:19 -07:00
Vinnie Falco c5d4f8eede Use boost::void_t
fix #905
2018-04-24 15:14:37 -07:00
Vinnie Falco 14392d7f52 Use buffers_to_string in tests
fix #782
2018-04-24 10:55:39 -07:00
Vinnie Falco 5abac8b380 Set version to 168 2018-04-23 17:09:17 -07:00
Vinnie Falco 9d8239b8b3 Add stale.yml 2018-04-13 08:47:22 -07:00
Vinnie Falco f1b1ee2345 Fix race in advanced server examples
fix #1073
2018-04-12 08:54:44 -07:00
Vinnie Falco 3c3f4fc52b Revert "Tidy up a warning"
This reverts commit 90d2df3be3.
2018-04-10 09:09:49 -07:00
Vinnie Falco 86342dd72b Use executor_work_guard in composed operations:
fix #1076

As per Asio and Networking TS requirements, composed operations must
maintain an object of type executor_work_guard for the executor associated
with the I/O object, for the lifetime of the asynchronous operation.

This is in addition to the requirement for maintaining an object of type
executor_work_guard for the executor associated with the handler.
2018-04-10 08:03:04 -07:00
Vinnie Falco b4cb4f1fd3 Set version to 167 boost-1.67.0 2018-03-22 20:14:16 -07:00
Vinnie Falco 12cc10f8bb Revert "Tidy up calls to post()"
This reverts commit 5eaa2be85e.
2018-03-22 20:13:39 -07:00
Vinnie Falco 4d660a5e54 Set version to 166 2018-03-13 10:47:19 -07:00
Vinnie Falco 4b0c14fe5a Use boost::is_convertible as a workaround 2018-03-13 10:47:07 -07:00
Vinnie Falco a03687eaa3 Set version to 165 2018-03-11 14:31:13 -07:00
Vinnie Falco 90d2df3be3 Tidy up a warning 2018-03-11 14:22:50 -07:00
Mateusz Loskot 06ee7c7ac6 Document requirement of building Boost libraries
This should also clarify the CMake configuration provided
does not build any of Beast's dependencies within Boost.
Capitalize Boost name.
Closes #1064
2018-03-11 14:22:36 -07:00
Daniel James dabc1c8ae6 Fix BOOST_NO_CXX11_ALLOCATOR check 2018-03-11 14:22:31 -07:00
Vinnie Falco 6a34afb38a Set version to 164 2018-03-09 09:29:18 -08:00
Ivan Vilata-i-Balaguer edd162cf3b Add Access-Control-Expose-Headers field constant:
This response header is described both in [CORS](https://www.w3.org/TR/cors/)
and [Fetch](https://fetch.spec.whatwg.org/) specifications.
2018-03-09 09:29:14 -08:00
Vinnie Falco c984f6c94d Fix masking on continuation frames 2018-03-09 07:51:33 -08:00
Vinnie Falco 6d560e3d41 Set version to 163 2018-03-04 15:13:40 -08:00
Daniela Engert a7b78ac1bc fix narrowing warnings
Signed-off-by: Daniela Engert <dani@ngrt.de>
2018-03-04 15:13:32 -08:00
Vinnie Falco 5eaa2be85e Tidy up calls to post() 2018-03-04 13:19:17 -08:00
Vinnie Falco 2fd3e46b20 Set version to 162 2018-03-01 11:33:02 -08:00
Vinnie Falco ebd036a300 Improve websocket::stream::control_callback javadoc
fix #1053
2018-03-01 11:32:58 -08:00
Vinnie Falco 726118468b Add asio_handler_invoke overloads for stream algorithms:
fix #1012

This fixes a bug where asynchronous stream alogrithms do not
work correctly with the legacy `io_service::strand` implementation.
2018-03-01 08:31:57 -08:00
Vinnie Falco 2543dbe5b9 Set version to 161 2018-02-28 15:05:03 -08:00
Vinnie Falco 073b53e448 Fix handler parameter javadocs 2018-02-28 15:04:54 -08:00
Vinnie Falco dfc5a2ff67 Add move-only handler tests 2018-02-28 15:04:54 -08:00
Christos Stratopoulos 5a53bd449a Don't copy the handler in write_some_op 2018-02-28 13:20:56 -08:00
Vinnie Falco 3a5f2effc1 Set version to 160 2018-02-27 08:12:58 -08:00
Vinnie Falco 04ced3b954 Examples clear the HTTP message before reading
fix #1043
2018-02-27 08:12:54 -08:00
Vinnie Falco d6c11a824a Set version to 159 2018-02-26 17:09:52 -08:00
Vinnie Falco 5d5e58c5b4 Some basic_fields operations now give the strong exception guarantee 2018-02-26 17:09:47 -08:00
Vinnie Falco 9f094518bc Safe treatment of zero-length string arguments in basic_fields:
This fixes a broken memcpy precondition when empty strings are
passed as arguments to basic_fields member functions.
2018-02-26 17:09:20 -08:00
Vinnie Falco a8a5fa9f6c Fix typo in release notes 2018-02-26 17:09:01 -08:00
Vinnie Falco fc187257c3 Set version to 158 2018-02-21 14:59:02 -08:00
Vinnie Falco eae74b1c89 get_lowest_layer is a type alias:
fix #941, fix #1016

`get_lowest_layer` is now a type alias for the
lowest layer instead of a struct with a nested type.

Actions required:

* Replace instances of `typename get_lowest_layer<T>::type`
  with `get_lowest_layer<T>`.
2018-02-21 14:49:44 -08:00
Vinnie Falco 66f0814cfd Tidy up some documentation
fix #984
2018-02-21 13:58:43 -08:00
Vinnie Falco d79950d95c DynamicBuffer input areas are not mutable
fix #1014
2018-02-21 13:19:14 -08:00
Vinnie Falco 10ce0283c2 Advanced servers support clean shutdown via SIGINT or SIGTERM
fix #1026
2018-02-21 12:44:11 -08:00