Vinnie Falco
24bbda7b0d
Add const and non-const overloads for message based http writes:
...
fix #1113
This solves a problem where the message-oriented synchronous
HTTP write algorithms do not support messages whose body
writer requires a non-const reference to the message in
order to construct.
In addition, the message-oriented async_write algorithm is
modified to support messages passed by const reference when
possible, based on the body writer attributes.
2018-05-06 19:57:25 -07:00
Vinnie Falco
07aead170a
Add is_mutable_body_writer metafunction
2018-05-04 19:34:05 -07:00
Vinnie Falco
416f84bc63
Remove deprecated Body reader and writer ctor signatures
2018-05-04 12:47:27 -07:00
Vinnie Falco
73bc28aaa2
Remove deprecated serializer::reader_impl()
2018-05-03 19:42:36 -07:00
Vinnie Falco
f48b978044
Use a shared string for example HTTP server doc roots
...
fix #1109
2018-05-03 14:18:33 -07:00
Vinnie Falco
a94efc8c92
Add test::stream to experimental
2018-05-02 08:32:09 -07:00
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