Vinnie Falco
2c5ed4595a
Fix buffers_prefix iterator decrement
2018-06-09 13:01:30 -07:00
Vinnie Falco
bd3079f5b4
Fix buffers_adapter max_size
2018-06-09 13:01:30 -07:00
Vinnie Falco
da9bb07d12
Fix buffers_adapter iterator value type
2018-06-08 14:01:17 -07:00
Vinnie Falco
c9298f6522
Remove Autobahn testsuite doc note
2018-05-31 06:27:00 -07:00
Vinnie Falco
5b1022d63e
Tidy up composed operation doc
...
fix #1141
2018-05-29 15:33:55 -07:00
Vinnie Falco
f5def127d8
Tidy up test::stream javadocs
2018-05-29 15:32:01 -07:00
Vinnie Falco
5b8eb1d87d
Fix http::parser constructor javadoc
2018-05-28 11:23:37 -07:00
Vinnie Falco
f948c9cbe5
Fix move-only arguments in bind_handler
2018-05-27 19:05:43 -07:00
Benjamin Buch
3d7f1e7303
Tidy up websocket stream javadocs:
...
Make clear text()/binary() option is different from got_text()/got_binary().
2018-05-19 07:54:27 -07:00
Vinnie Falco
0afb380f50
Fix unused variable warning
...
fix #1119
2018-05-18 17:25:56 -07:00
Vinnie Falco
6ea66fd89e
Remove spurious assert
...
fix #1099
2018-05-18 17:25:56 -07:00
Damian Jarek
86555b90ae
Add handler_ptr::has_value
...
This function returns `true` if the container holds a managed object.
Resolves : #1079
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2018-05-18 17:25:56 -07:00
Arvid Norberg
478c19e863
Use the root certificate which matches the fingerprint:
...
fix #1121
https://www.geotrust.com/resources/root_certificates/certificates/GeoTrust_Global_CA.pem
2018-05-08 14:08:28 -07:00
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
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
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
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
12cc10f8bb
Revert "Tidy up calls to post()"
...
This reverts commit 5eaa2be85e
.
2018-03-22 20:13:39 -07:00
Vinnie Falco
4b0c14fe5a
Use boost::is_convertible as a workaround
2018-03-13 10:47:07 -07:00
Vinnie Falco
90d2df3be3
Tidy up a warning
2018-03-11 14:22:50 -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
Vinnie Falco
c984f6c94d
Fix masking on continuation frames
2018-03-09 07:51:33 -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
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
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
04ced3b954
Examples clear the HTTP message before reading
...
fix #1043
2018-02-27 08:12:54 -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
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
Vinnie Falco
a4714746dc
Examples set reuse_address(true)
...
fix #1027
2018-02-21 12:35:07 -08:00
Vinnie Falco
490b9ce893
Tidy up websocket docs
...
fix #1035
2018-02-21 12:10:26 -08:00
Vinnie Falco
8dcc6162c1
Tidy up end_of_stream javadoc
...
fix #1023
2018-02-21 08:45:08 -08:00
Vinnie Falco
c505e32210
Fix big-endian websocket masking
...
fix #1030
2018-02-21 06:35:32 -08:00
Vinnie Falco
593ccb15cd
Fix teardown for TIME_WAIT
...
fix #1024 , fix #1029
2018-02-20 04:33:43 -08:00
Vinnie Falco
b249d6f868
Fix stale link for void-or-deduced
2018-02-19 18:36:31 -08:00
Vinnie Falco
b68db30ba6
Add release notes to documentation
2018-02-19 18:36:31 -08:00
Vinnie Falco
a4eb96fcb9
Don't use typeid
2018-02-19 18:36:30 -08:00
Vinnie Falco
534ba34e7e
Tidy up bind_handler doc
2018-02-16 10:51:28 -08:00
Benjamin Roland Buch
b7750de15f
Fix fallthrough warnings
...
fix #1019
2018-02-16 10:51:28 -08:00
Vinnie Falco
ab32400d00
Fix soft-mutex assert in websocket stream:
...
Fix #1000
This resolves the assert 'ws_.wr_block_ == tok_'.
2018-02-16 10:51:28 -08:00
Benjamin Roland Buch
9f3c981d6a
Fix memory leak in advanced server examples
2018-02-14 21:24:59 -08:00
Vinnie Falco
c9bbf7bdbc
bind_handler works with boost placeholders
2018-01-26 10:12:40 -08:00
Vinnie Falco
2f03cc7895
Tidy up bind_handler doc
...
fix #985
2018-01-26 10:12:15 -08:00
Vinnie Falco
d855bdefd8
Type check completion handlers
...
fix #988
2018-01-26 08:58:19 -08:00
Vinnie Falco
38e580e49d
Add Bishop Fox interview media
2018-01-25 06:02:43 -08:00
Vinnie Falco
72cf7db931
Fix use-after-move in example request handlers
...
fix #992
2018-01-25 06:02:43 -08:00
Peter Jankuliak
4fb535ece6
Fix iterator version of basic_fields::erase
...
fix #994
2018-01-25 06:02:43 -08:00
Vinnie Falco
ad42096a9d
Avoid string_view::clear:
...
String views are cleared using assignment from
braced initializion, to avoid calling clear().
2018-01-25 06:02:42 -08:00
Vinnie Falco
2b32de6cba
Update README.md for branches
...
fix #974
2018-01-25 06:02:42 -08:00
Paul "TBBle" Hampson
0efc246466
Use boost::winapi::GetLastError() consistently:
...
This replaces a few direct calls to ::GetLastError, and also removes a
couple of duplicate calls when the value was already held locally.
2018-01-12 12:30:39 -08:00
Paul "TBBle" Hampson
035248cefb
Use make_error_code for setting an error_code from errc:
...
In Boost.System, `boost::system::errc` is a namespace
containing ints. In C++11, std::errc is an enum marked
as an `error_condition`.
`error_code::assign` is specified as taking an int only,
while make_error_code is able to deal correctly with both forms.
2018-01-12 12:30:39 -08:00
Vinnie Falco
3546eff033
Remove BOOST_VERSION checks
...
fix #722
2018-01-12 12:30:39 -08:00
Vinnie Falco
24358f784a
Disable gdb on Travis for Meltdown
2018-01-12 11:54:29 -08:00
Vinnie Falco
cc43b46c42
Refactor WebSocket errors (API Change):
...
fix #949
* New error codes are introduced for WebSocket failures
* More verbose messages for error codes
* Error codes are mapped to conditions for ease of testing
* error::failed and error::handshake_failed are deprecated (don't use)
Actions Required:
* Code which explicitly compares error_code values against the
constant `websocket::error::handshake_failed` should compare
against `websocket::condition::handshake_failed` instead.
* Code which explicitly compares error_code values against the
constant `websocket::error::failed` should compare
against `websocket::condition::protocol_violation` instead.
2018-01-12 07:35:26 -08:00
Vinnie Falco
08a9ed4c25
Add WebSocket error conditions:
...
This introduces the condition enumeration type for grouping
websocket error codes together as a convenience to callers.
2018-01-01 13:38:55 -08:00
Vinnie Falco
b86169019e
Refactor error headers:
...
The WebSocket error header file declarations are
reorganized to make it easier to move function
definitions into their own translation unit.
2018-01-01 12:17:02 -08:00
Vinnie Falco
45798e0a6e
Refactor detect_ssl_op:
...
fix #955
The asynchronous SSL detector uses a stackless coroutine.
2017-12-31 10:50:26 -08:00
Vinnie Falco
d7664fa140
Redistribute the read tests in the translation units
2017-12-31 10:28:42 -08:00
Vinnie Falco
841ab8474b
permessage-deflate is a compile-time feature (API Change):
...
fix #849
This adds an additional `bool` template parameter to
`websocket::stream`:
* When deflateSupported is `true`, the stream will be capable
of negotiating the permessage-deflate websocket extension per
the configured run-time settings.
* When deflateSupported is `false`, the stream will never negotiate
the permessage-deflate websocket extension. Furthermore, all of the
code necessary for implementing the permessage-deflate extension
will be excluded from function instantiations. The resulting emitted
object code should be smaller.
2017-12-30 13:23:41 -08:00
Vinnie Falco
65d92f62fb
Fix high-ASCII in source file
2017-12-30 09:20:28 -08:00
Vinnie Falco
8c5440aae1
Depend on container_hash
2017-12-30 07:11:25 -08:00
Vinnie Falco
cccb6a07fc
http::parser is not MoveConstructible (API Change)
2017-12-30 06:08:28 -08:00
Vinnie Falco
b6c3cb30ae
Remove unnecessary include
2017-12-29 09:26:29 -08:00
Vinnie Falco
5dcef24ea7
Add stream_fwd.hpp
2017-12-29 09:25:18 -08:00
Vinnie Falco
eddadacba7
Control callback is invoked on the execution context:
...
fix #954
Fix a defect where the control callback could execute
on the same stack as the initiating function.
2017-12-27 18:17:09 -08:00
Vinnie Falco
dabb78afe7
Sanitizer failures are errors
2017-12-23 08:46:34 -08:00
Vinnie Falco
4a4d535d98
Documentation
2017-12-15 09:27:40 -08:00
Vinnie Falco
d796319476
serializer::reader_impl is deprecated:
...
fix #930
* The function serializer::reader_impl is deprecated and will
be removed in a subsequent version.
* Some private symbols used in the implementation were
also renamed to reflect correct terminology.
Actions Required:
* Call serializer::writer_impl instead of reader_impl
2017-12-14 13:13:10 -08:00
Damian Jarek
96e04022c4
handler_ptr tests:
...
fix #932
Ensure handler_ptr cleans up when move-constructing
a handler throws an exception.
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2017-12-11 10:45:03 -08:00
Damian Jarek
aac2bf1596
Fix Travis memory utilization:
...
Split the websocket read test to reduce compile time memory usage
by a small amount, which ought to be enough to let it compile in
a constrained environment like Travis.
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2017-12-09 12:53:28 -08:00
Damian Jarek
285965d82e
handler_ptr gives the strong exception guarantee (API Change):
...
* The handler_ptr constructor now provides the
strong exception guarantee.
* The signature for managed objects constructed by
`handler_ptr` receives a const reference to the handler.
Actions required:
* Change the constructor signature for state objects
used with handler_ptr to receive a const reference to
the handler.
2017-12-08 10:58:46 -08:00
Damian Jarek
e08132106e
handler_ptr is move-only:
...
It is no longer a reference counted object and now has semantics
close to a std::unique_ptr.
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2017-12-04 13:07:17 -08:00
Damian Jarek
200e898f7e
Don't copy completion handlers:
...
All asynchronous operations will now be able to use move-only
CompletionHandlers.
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2017-12-04 12:14:40 -08:00
Vinnie Falco
3361df142c
pausation always allocates
2017-12-04 12:14:39 -08:00
Vinnie Falco
eb0cc97e1a
Protect calls from macros
...
fix #918
2017-12-04 12:14:11 -08:00
Vinnie Falco
eb412ee958
Fix CMakeLists.txt variable
2017-12-04 12:14:11 -08:00
Vinnie Falco
c01224ddc4
Tidy up ssl_stream special members
...
fix #916
2017-12-04 12:14:11 -08:00
Vinnie Falco
13b9d1bd92
built-in r-value return values can't be assigned:
...
This fixes the following warning:
warning: ‘const’ type qualifier on return type has no effect [-Wignored-qualifiers]
2017-12-04 12:14:09 -08:00
Vinnie Falco
8a2a4578b6
Merge v144-hf1
2017-12-04 12:09:24 -08:00
Vinnie Falco
4053c1bb09
Handle invalid deflate frames:
...
This fixes a problem where an assert is generated or an
error is ignored when an invalid deflate stream is produced
after appending the final empty deflate block.
2017-12-04 12:05:36 -08:00
Vinnie Falco
1b86bc3c36
Update reports for hybrid assessment
2017-12-04 12:05:27 -08:00
Vinnie Falco
e2b473753b
Install codecov on codecov CI targets only
2017-12-04 12:04:55 -08:00
Vinnie Falco
0d8b79abb5
Install codecov on codecov CI targets only
2017-12-03 12:49:51 -08:00
Vinnie Falco
2f451badc8
Handle invalid deflate frames:
...
This fixes a problem where an assert is generated or an
error is ignored when an invalid deflate stream is produced
after appending the final empty deflate block.
2017-12-03 01:13:41 -08:00
Vinnie Falco
1069b4ab22
Update reports for hybrid assessment
2017-12-03 01:13:23 -08:00
Damian Jarek
190d20e3a8
Tidy up basic_fields exception specifiers
...
fix #894
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2017-11-28 04:51:18 -08:00
Vinnie Falco
7ac24d77be
Send idle pings in advanced servers:
...
fix #899
The timer logic for the advanced-server and advanced-server-flex
examples is refactored to use idle pings when the connection has
not seen activity for some period of time. This demonstrates the
use of the stream's control_callback interface.
2017-11-27 16:44:59 -08:00
Vinnie Falco
8181851719
control callback is copied or moved:
...
The function stream::control_callback now copies or moves
the callback. In some cases this may require a dynamic
allocation.
To avoid the possibility of a dynamic allocation, callers
may wrap their callback using `std::ref` before setting it.
2017-11-27 15:05:58 -08:00
Vinnie Falco
ab91844039
Use iterator wrapper in detail::buffers_range
...
fix #907
2017-11-26 14:18:21 -08:00
Vinnie Falco
8c73c0d300
Don't use boost::string_ref
2017-11-26 14:01:49 -08:00
Vinnie Falco
b59d0a5cd5
Use variant in buffers_cat_view
2017-11-26 12:18:53 -08:00
Damian Jarek
332c2fe0cb
Add detail::aligned_union and tidy up
...
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2017-11-26 12:18:53 -08:00
p-kalugin
fb0d82245f
Fix typo in examples documentation
2017-11-26 09:55:38 -08:00
Vinnie Falco
9d941f2655
Documentation tidying
2017-11-22 10:29:19 -08:00
Vinnie Falco
59107701d2
Remove unintended public members of handler_ptr
2017-11-21 15:03:47 -08:00
Vinnie Falco
639266fd64
Faster ascii_tolower
2017-11-21 15:03:43 -08:00
zerotypos-found
99bf3f5556
Fix some typos
2017-11-21 08:11:20 -08:00
Vinnie Falco
25c5f2e844
basic_fields does not support fancy pointers
...
fix #896
2017-11-20 12:12:06 -08:00
Vinnie Falco
d203bf342b
Version 124 works with Boost 1.65.1 and earlier
...
fix #874
2017-11-20 11:52:03 -08:00
Vinnie Falco
110a0d52e2
null_buffers is deprecated
2017-11-20 11:48:57 -08:00
Vinnie Falco
75fcea69ee
Refactor HTTP async read composed operations
...
fix #810
2017-11-18 19:47:35 -08:00
Vinnie Falco
5ae15432b8
Refactor basic_fields allocator internals:
...
fix #857
* Use empty base optimization to store the allocator
* Rebind to a smaller aligned type to reduce waste
2017-11-18 18:14:15 -08:00
Vinnie Falco
a55e67b94f
Rename some detail functions
2017-11-18 18:14:14 -08:00
Vinnie Falco
73eba08cf4
Fix websocket permessage-deflate negotiation
2017-11-18 18:06:56 -08:00
Vinnie Falco
a4a2ee8806
Fix autobahn report link
2017-11-13 12:18:30 -08:00
Vinnie Falco
c37ce4b15e
Fix name typo in http write test
2017-11-11 09:41:06 -08:00
Vinnie Falco
afca4cc277
Warn about upcoming API changes to certain concepts
2017-11-11 09:13:05 -08:00
Vinnie Falco
99d6d35c62
Tidy up some documentation
...
fix #880 , fix #881
2017-11-10 16:41:14 -08:00
Vinnie Falco
ff2dc67afa
Some basic_fields special members are protected
2017-11-08 20:13:09 -08:00
Damian Jarek
0f7670b7e0
Tidy up basic_parser:
...
- Add const qualifiers.
- Fix parser conversion constructor not copying header_limit_ and status_ fields.
- Use default special member functions when possible.
- Zero-initialize non-class members.
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2017-11-08 20:13:09 -08:00
Casey Bodley
f96785df4f
Fix signature for async_read_some, and tests
...
Signed-off-by: Casey Bodley <cbodley@redhat.com>
2017-11-08 19:58:46 -08:00
Miguel Portilla
a1db3cab9f
Fix UTF8_checker test failures
2017-11-08 19:58:45 -08:00
Vinnie Falco
2ed1d9affb
Fix some integer warnings in 64-bit builds
2017-11-07 07:10:31 -08:00
Sergey M․
8e75ed26d1
Revisit boost library min/max guidance
...
refs #170
2017-11-05 13:03:09 -08:00
Vinnie Falco
120617f438
Tidy up some documentation
2017-11-05 09:29:33 -08:00
Vinnie Falco
fdd02d9ee7
Tidy up some documented constructor syntax
2017-11-03 19:41:34 -07:00
Vinnie Falco
327ebc2007
Add FieldsWriter constructor requirement
...
fix #864
2017-11-03 19:36:35 -07:00
Vinnie Falco
d9d2b23b57
ConstBufferSequence mandates pointer equivalence
...
fix #865
2017-11-03 19:34:30 -07:00
Vinnie Falco
14926bfb3f
Tidy up message doc image
2017-11-02 15:52:57 -07:00
Vinnie Falco
12a355efc9
Fix typo in example server help text
2017-11-01 11:31:03 -07:00
Vinnie Falco
5a35a33905
Add static_buffer_base default constructor definition
...
fix #862
2017-11-01 10:39:01 -07:00
Vinnie Falco
5177d729a7
Remove const&& overload of message::body
2017-10-31 14:43:10 -07:00
Vinnie Falco
895c9fa7ed
BodyReader and BodyWriter names are swapped (API Change):
...
Body::reader and Body::writer meanings are reversed, for
consistency with the names of the stream operations:
* Body::reader is used for read, read_some, async_read, async_read_some
* Body::writer is used for write, write_some, async_write, async_write_some
Actions Required:
* Swap the reader and writer names for user defined Body types
* Swap use of is_body_reader and is_body_writer
2017-10-30 18:13:40 -07:00
Vinnie Falco
101023553e
Fields::writer replaces Fields::reader (API Change):
...
* Fields::writer replaces Fields::reader
* The FieldsWriter concept is renamed from FieldsReader
Actions Required:
* Rename reader to writer for user defined Fields
2017-10-30 17:53:59 -07:00
Vinnie Falco
14653be0cc
Tidy up FieldsReader doc
2017-10-30 15:59:05 -07:00
Vinnie Falco
23bf8638ab
Add ref-qualified overloads for message::body
2017-10-30 15:23:43 -07:00
Vinnie Falco
e39e4c73bf
Rename Cmake variables for clarity
2017-10-30 12:35:56 -07:00
Vinnie Falco
42679ee0bc
Tidy up project folders in CMakeLists.txt
2017-10-30 12:35:55 -07:00
Vinnie Falco
b75d4e5e14
Set SNI hostname in example SSL clients
...
fix #853
2017-10-29 14:58:57 -07:00
Vinnie Falco
c5a1615301
basic_fields returns const values
2017-10-29 06:45:33 -07:00
Vinnie Falco
d8a0200929
Remove cxx11_sfinae_expr build requirement from tests
2017-10-27 17:03:44 -07:00
Vinnie Falco
970daa340a
Tidy up fallthrough warning
2017-10-27 17:03:44 -07:00
Vinnie Falco
597802c38a
Fix prepare_payload: chunked is HTTP/1.1
2017-10-27 11:16:10 -07:00
Vinnie Falco
b5389ba5f2
Documentation tidying
...
fix #836
2017-10-27 11:16:09 -07:00
Vinnie Falco
c3367e0746
Add autobahn test report to doc
2017-10-26 11:08:24 -07:00
Vinnie Falco
55185b8de9
Add explicit-failures-markup.xml
2017-10-26 08:13:41 -07:00
Vinnie Falco
2746184850
Tidy up fast websocket server host names
2017-10-26 05:52:56 -07:00
Vinnie Falco
c029efaf7c
Temporarily disable utf8 validation tests
2017-10-26 00:00:35 -07:00
Vinnie Falco
85f2dcca33
Fix utf8 validation for autobahn
2017-10-25 23:24:31 -07:00
Vinnie Falco
3d3bc87042
Use synchronous writes in chunk output example
2017-10-25 23:24:31 -07:00
Vinnie Falco
2555942010
Use message::need_eof in example servers
2017-10-25 18:48:19 -07:00
Vinnie Falco
1754d5427d
Add message::need_eof
2017-10-25 18:41:04 -07:00
Vinnie Falco
5c14ab9f7c
Rename some basic_parser observers (API Change):
...
Some `basic_parser` member functions are renamed:
* chunked() was is_chunked()
* upgrade() was is_upgrade()
* keep_alive() was is_keep_alive()
Actions Required:
* Rename member function invocations at call sites
2017-10-25 18:04:54 -07:00
Vinnie Falco
6225c5bd2f
Add has_content_length_impl to Fields (API Change):
...
* The function has_content_length_impl is added to the
requirements of Fields.
Actions Required:
* Implement has_content_length_impl for user-defined Fields
2017-10-25 17:58:45 -07:00
Vinnie Falco
feb525f829
Remove serializer::chunked (API Change):
...
* The function serializer::chunked is removed,
since it is redundant.
Actions Required:
* Call serializer::get::chunked instead of serializer::chunked
2017-10-25 17:09:04 -07:00
Vinnie Falco
129c7d8b78
Remove serializer::keep_alive (API Change):
...
* The serializer::keep_alive function is removed
Actions Required:
* Call message::keep_alive instead of serializer::keep_alive
2017-10-25 17:09:03 -07:00
Vinnie Falco
93c849d6d4
Update doc links
2017-10-25 17:08:48 -07:00
Vinnie Falco
4927fa42d7
More Jamfile compiler requirements for tests
2017-10-25 11:45:40 -07:00
Sorin Fetche
f4facffae3
Version command line option for HTTP client examples:
...
The examples HTTP clients allow an optional command line switch
to choose the HTTP-version used ("1.0" or "1.1").
2017-10-25 10:33:24 -07:00
Berkus Decker
bea7d6e019
Add BOOST_BEAST_NO_POSIX_FADVISE
2017-10-25 10:17:25 -07:00
Vinnie Falco
6ccc61d940
Fix buffered_read_stream async_read_some signature
2017-10-24 14:26:05 -07:00
Andrey Semashev
ab2a225a9a
Update Boost.WinAPI usage to the new location and namespace.
2017-10-24 13:32:50 -07:00
Peter Dimov
645fdb6581
Add Travis tests with the default compilers
2017-10-24 09:33:30 -07:00
Vinnie Falco
41e61a7458
Fix executor type compilation
2017-10-24 09:33:29 -07:00
Vinnie Falco
e94dcae10c
Fix shadowing in session_alloc
2017-10-24 09:33:29 -07:00
Vinnie Falco
c4bef9cc29
Fix doc typo
2017-10-23 20:19:53 -07:00
Vinnie Falco
e146f2c7be
Don't return end_of_stream on win32 file body writes
2017-10-23 20:19:51 -07:00
Vinnie Falco
8312c6eb86
Tidy up unused variable warnings
2017-10-23 20:19:36 -07:00
Vinnie Falco
1faac0b0fb
Update stream write documentation for end of stream changes
2017-10-23 18:36:01 -07:00
Vinnie Falco
4337804f5d
Update README.md
2017-10-23 18:03:29 -07:00
Vinnie Falco
42095dcb34
Add CppCon2017 presentation link
2017-10-23 17:54:33 -07:00
Vinnie Falco
3a28e999af
Update for Net-TS Asio (API Change):
...
fix #769
The following classes are removed:
* handler_type
* async_result
* async_completion
* is_dynamic_buffer
* is_const_buffer_sequence
* is_mutable_buffer_sequence
* handler_alloc
Actions Required:
* Use BOOST_ASIO_HANDLER_TYPE instead of handler_type
* Use BOOST_ASIO_INITFN_RESULT_TYPE instead of async_result
* Use boost::asio::async_completion
* Use boost::asio::is_dynamic_buffer
* Use boost::asio::is_const_buffer_sequence
* Use boost::asio::is_mutable_buffer_sequence
* boost::asio::associated_allocator_t replaces handler_alloc
2017-10-23 17:11:27 -07:00
Vinnie Falco
5c6b232654
Fix basic_fields javadoc
2017-10-22 10:03:40 -07:00
Vinnie Falco
56fee93601
Fix for a test matrix compiler
2017-10-22 07:03:14 -07:00
Vinnie Falco
d0d4e0a740
http write returns success on connection close (API Change):
...
fix #767
The write family of HTTP stream algorithms no longer returns
error::end_of_stream when the message indicates that the connection
should be closed.
Actions Required:
* Add code to servers to close the connection after successfully
writing a message where `message::keep_alive()` would return `false`.
2017-10-22 07:03:04 -07:00
Vinnie Falco
2399b610e3
Clear previous message fields in parser
...
fix #818
2017-10-16 12:09:41 -07:00
Vinnie Falco
e832baf93f
Check compiler feature in Jamfile
2017-10-16 09:16:26 -07:00
Vinnie Falco
a30d30e379
Fix spurious race in websocket close test
2017-10-15 10:41:16 -07:00
Vinnie Falco
1e412715b1
Use unit-test subtree
2017-10-15 09:00:07 -07:00
Vinnie Falco
6ca2ef8449
Add missing case in error test
2017-10-10 08:17:23 -07:00
Vinnie Falco
8179be560e
config.hpp is not a public header
2017-10-10 07:49:12 -07:00
Vinnie Falco
7594c88f8f
CMake 3.5.1 is required
2017-10-09 14:35:56 -07:00
Vinnie Falco
2ac6936312
Fix zlib symbol conflicts
...
fix #808
2017-10-07 13:59:04 -07:00
Vinnie Falco
a517df9090
assert on empty buffer in websocket read
2017-10-07 11:17:13 -07:00
Vinnie Falco
6e08fa0a21
Add test for issue 807
2017-10-05 19:24:35 -07:00
Gyorgy Szekely
471638c60e
Fix enum and non-enum in conditional exp. warning
2017-10-03 06:13:11 -07:00
Vinnie Falco
f5f1b7d6fa
Add test for issue 802
2017-10-03 06:13:10 -07:00
Vinnie Falco
c0cf030528
OpenSSL targets are optional (CMake)
2017-10-01 10:34:17 -07:00
Vinnie Falco
bbc1f14347
Fix spurious strand_ in advanced_server_flex
2017-10-01 10:14:47 -07:00
Vinnie Falco
167f9641a4
Tidy up doc badge links
2017-09-30 07:25:33 -07:00
Vinnie Falco
ac6c23dd6b
Doc root is at index.html
...
fix #795
2017-09-26 10:03:46 -07:00
Vinnie Falco
04bf98298f
Update build instructions
...
fix #796
2017-09-26 10:03:46 -07:00
Peter Jankuliak
fa4df7eb60
Remove unused strands in server examples
2017-09-25 21:33:04 -07:00
Nils Gladitz
c81558e38b
file_win32 opens for read-only in shared mode:
...
fix #786
Without this change the second opening of an
already opened file fails with:
"The process cannot access the file because it
is being used by another process"
2017-09-25 21:33:04 -07:00
Peter Jankuliak
5a7b8b23db
Fix writing headers into std::ostream
2017-09-21 16:08:19 -07:00
Vinnie Falco
b5f22bdef6
Add buffers_to_string
...
fix #772
2017-09-20 08:31:36 -07:00
Vinnie Falco
2c656a22f9
Remove buffers_suffix::get (API Change):
...
* buffers_suffix::get member function is removed
Actions Required:
* Avoid calling buffers_suffix::get
2017-09-20 08:31:36 -07:00
Vinnie Falco
06fb2b9dfc
buffers_cat replaces buffer_cat (API Change):
...
fix #773
* buffer_cat is renamed to buffers_cat
* buffer_cat_view is renamed to buffers_cat_view
Actions Required:
* Use buffers_cat instead of buffer_cat
* Use buffers_cat_view instead of buffer_cat_view
2017-09-15 12:52:59 -07:00
Vinnie Falco
38c2816539
buffers_front replaces buffer_front (API Change):
...
fix #773
* buffer_front is renamed to buffer_front
Actions Required:
* Use buffers_front instead of buffer_front
2017-09-15 12:52:59 -07:00
Vinnie Falco
e94a65b04a
buffers_prefix replaces buffer_prefix (API Change)
...
fix #773
* buffer_prefix is renamed to buffers_prefix
* buffer_prefix_view is renamed to buffers_prefix_view
Actions Required:
* Use buffers_prefix instead of buffer_prefix
* Use buffers_prefix_view instead of buffer_prefix_view
2017-09-15 12:52:58 -07:00
Vinnie Falco
795da80859
buffers_suffix replaces consuming_buffers (API Change):
...
fix #770
* consuming_buffers is renamed to buffers_suffix
Actions Required:
* Use buffers_suffix instead of consuming_buffers
2017-09-15 12:52:45 -07:00
Vinnie Falco
38e28966ea
message::version is a member function (API Change):
...
fix #778
* The version data member is replaced with accessor
member functions.
Actions Required:
* Call member function message::version instead of accessing
the version member at call sites.
2017-09-12 17:13:02 -07:00
Vinnie Falco
54fe7cacf7
message::body is a member function (API Change):
...
fix #778
* The body data member is replaced with accessor
member functions.
Actions Required:
* Call member function message::body instead of accessing
the data member at call sites.
2017-09-12 17:12:12 -07:00
Vinnie Falco
1de06dfaeb
Update README.md master doc link
2017-09-10 16:10:47 -07:00
Vinnie Falco
60a33019d4
Set version to 114
2017-09-10 14:35:52 -07:00
Howard Hinnant
4880cdd472
Remove field_range copy constructor
...
* This presence of the user-declared copy constructor makes
the compiler-provided copy assignment operator deprecated.
This change allows the compiler to provide both copy members
without deprecated behavior.
2017-09-09 06:49:39 -07:00
Vinnie Falco
0007afdaf2
Fix handler signature in async_read_header
2017-09-09 06:39:49 -07:00
Vinnie Falco
49d9d47a0b
HTTP reads and writes return bytes transferred (API Change):
...
* HTTP read and write operations now return the
number of bytes transferred to or from the stream.
Actions Required:
* Modify HTTP read and/or write completion handlers to receive
the extra std::size_t bytes_transferred parameter.
2017-09-03 20:37:28 -07:00
Vinnie Falco
cc8246e27e
Update websocket notes
2017-09-03 20:05:20 -07:00
Vinnie Falco
c0e5f14702
WebSocket writes return the bytes transferred (API Change):
...
* Stream write operations now return the number of bytes
transferred from the caller's input buffers.
Actions Required:
* Modify websocket write completion handlers to receive
the extra std::size_t bytes_transferred parameter.
2017-09-03 20:05:19 -07:00
Vinnie Falco
647b3d68e1
Suspended ops special members
2017-08-31 17:52:37 -07:00
Vinnie Falco
51a5a36118
Refactor stream operations and tests plus coverage
2017-08-31 17:52:36 -07:00
Vinnie Falco
9f089c2a33
Fix utf8 check split code point at buffer end
2017-08-31 17:52:36 -07:00
Vinnie Falco
b13e02bb55
Fix invalid iterator in test reporter
...
fix #755
2017-08-29 08:22:12 -07:00
Damian Jarek
96c53a048f
Add Add test::stream::lowest_layer:
...
This allows the stream to be used as the next layer type in
a stack of network stream layers.
Signed-off-by: Damian Jarek <damian.jarek93@gmail.com>
2017-08-28 22:16:23 -07:00
Vinnie Falco
30b98674d5
Refactor websocket stream: fixes and tests
2017-08-28 22:16:22 -07:00
Vinnie Falco
1d5b3f488e
Refactor websocket stream members
2017-08-26 20:12:21 -07:00
Vinnie Falco
4c335a64cf
Refactor stream open state variable
2017-08-26 20:12:04 -07:00
Vinnie Falco
df7b068fa7
websocket read tests
2017-08-25 07:40:05 -07:00
Vinnie Falco
142b785119
split up websocket tests
2017-08-24 06:38:47 -07:00
Vinnie Falco
5ac51a1054
websocket write tests
2017-08-23 14:38:29 -07:00
Vinnie Falco
2697c26238
Fix websocket close_op resume state
2017-08-23 14:34:14 -07:00
Vinnie Falco
463accffd1
Refactor test::stream
2017-08-23 14:34:13 -07:00
Vinnie Falco
99822aebf5
websocket ping tests
2017-08-23 14:34:13 -07:00
Vinnie Falco
6809c18afa
websocket handshake uses coroutine
2017-08-23 14:34:13 -07:00
Vinnie Falco
96eff81cea
websocket close fixes and tests
2017-08-23 14:34:13 -07:00
Vinnie Falco
7e815435f6
websocket accept refactoring (API Change):
...
* stream overloads of accept which take both a message
and a buffer sequence are removed.
Actions Required:
* Do not call websocket accept overloads which take
both a message and a buffer sequence, as it is
illegal per rfc6455.
2017-08-23 14:34:13 -07:00
Vinnie Falco
7a96dc4e11
Fix async_read_some handler signature
2017-08-23 14:34:13 -07:00
Vinnie Falco
59d4b85e15
Don't use async_write_msg in examples
...
fix #746
2017-08-18 07:55:30 -07:00
Vinnie Falco
830e651f99
Fix argument parsing in HTTP examples
...
fix #746
2017-08-18 07:55:20 -07:00
Vinnie Falco
2c73eeef7c
Use test::stream
2017-08-16 18:26:48 -07:00
Vinnie Falco
e690528132
Rename frame and header buffer types
...
fix #736
2017-08-15 16:59:17 -07:00
Vinnie Falco
3d6a009a96
Fix utf8 check for compressed frames
2017-08-15 16:33:25 -07:00
Vinnie Falco
a435dde2a3
Fix done state for WebSocket reads
2017-08-15 12:49:02 -07:00
Vinnie Falco
76feb4afd4
Fix for basic_parser::skip(true) and docs
...
fix #742
2017-08-15 07:00:56 -07:00
Vinnie Falco
f570593a01
Tidy up utf8_checker and tests
2017-08-14 15:41:35 -07:00
Vinnie Falco
66b657a85f
Autobahn|Testsuite fixes
2017-08-14 15:41:31 -07:00
Vinnie Falco
5940002c96
Websocket close will automatically drain:
...
fix #642
This changes websocket::stream close and async_close to automatically
read and discard incoming message frames before shutting down the
connection. It is no longer necessary to manually drain the connection.
2017-08-14 15:41:11 -07:00
Vinnie Falco
fa087e19f1
Refactor read_op + fail_op
2017-08-14 15:40:13 -07:00
Vinnie Falco
3652137718
Refactor close_op
2017-08-14 15:30:31 -07:00
Vinnie Falco
470ef85982
Refactor read_op
2017-08-14 15:30:30 -07:00
Vinnie Falco
91fb1c4b53
Refactor fail_op
2017-08-14 15:30:30 -07:00
Vinnie Falco
a98e432a2a
Refactor ping_op
2017-08-14 15:30:30 -07:00
Vinnie Falco
2b484c0b8b
Refactor write_op
2017-08-14 15:30:30 -07:00
Vinnie Falco
0439114fd5
Remove obsolete write_op
2017-08-14 15:30:30 -07:00
Vinnie Falco
ffd20b91f7
websocket test improvements
2017-08-14 15:30:29 -07:00
Vinnie Falco
4218a3a972
Add flat_static_buffer::reset
2017-08-14 15:30:28 -07:00
Vinnie Falco
3fe6cef129
Dynamic buffer input areas are mutable
2017-08-14 15:30:13 -07:00
Vinnie Falco
a56b390638
Tidy up Jamfile and tests
2017-08-10 18:32:21 -07:00
Vinnie Falco
483a4c5da5
Fix compile error in websocket snippet
2017-08-10 16:28:20 -07:00
Vinnie Falco
6ef4afa765
Fix pausation::save
2017-08-09 18:50:04 -07:00
Vinnie Falco
9fd7e4adee
tools/ renamed from build/
2017-08-09 18:50:04 -07:00
Vinnie Falco
d8a1eef7a3
Tidy up some test warnings
2017-08-09 17:23:41 -07:00
Vinnie Falco
da8bc6594d
Only set /permissive- on Appveyor
2017-08-09 17:18:07 -07:00
Vinnie Falco
d9d2b10760
Only set -std=c++11 on Travis
2017-08-09 16:34:19 -07:00
Vinnie Falco
8977237f8a
Use #error in config.hpp
2017-08-09 16:34:18 -07:00
Vinnie Falco
17789ba02e
Remove unused include
2017-08-09 14:43:21 -07:00
Vinnie Falco
d613feae01
Example HTTP server fixes
2017-08-08 19:25:35 -07:00
Vinnie Falco
0175102151
Tidy up allocator usage
2017-08-08 11:11:44 -07:00
Vinnie Falco
cf8182794a
Boost test matrix fixes
2017-08-08 11:11:31 -07:00
Vinnie Falco
6f85f38836
Section headings in examples
2017-08-08 06:20:24 -07:00
Vinnie Falco
dd71b0f94d
Refactor all examples:
...
fix #575 , fix #604 , fix #608 , fix #634 , fix #712
All examples are rewritten:
* Using Best Practices
* Mostly self-contained
* New examples to complete the feature matrix
* The server-framework example is removed
2017-08-07 20:53:11 -07:00
Vinnie Falco
5e6ee5445e
websocket documentation
2017-08-04 19:02:13 -07:00
Vinnie Falco
60c8a560bf
Add teardown_role for correct TIME_WAIT behavior (API Change):
...
* teardown_tag is replaced with teardown_role, a client/server
flag used to determine whether the shutdown is performed
before or after reading the EOF. This is in accordance with
RFC6455 7.1.1:
https://tools.ietf.org/html/rfc6455#section-7.1.1
Actions Required:
* Modify signatures of teardown and async_teardown to use
teardown_role instead of teardown_tag
* Change calls to teardown and async_teardown to pass the
correct role: client or server depending on context.
2017-08-04 19:02:13 -07:00
Vinnie Falco
de03a1a32d
drain_buffer is removed (API Change):
...
* The drain_buffer dynamic buffer is no longer a public interface.
Actions Required:
* Replace code which uses drain_buffer. For websocket::stream,
it is no longer necessary to manually drain the connection
after closing.
2017-08-04 19:02:13 -07:00
Vinnie Falco
64327739f0
WebSocket close will automatically drain (API Change):
...
fix #642
* Calls to stream::close and stream::async_close will
automatically perform the required read operations
Actions Required:
* Remove calling code which drains the connection after
calling stream::close or stream::async_close
2017-08-04 19:02:13 -07:00
Vinnie Falco
dc6a08d10a
Add variadic min/max
2017-08-04 19:02:13 -07:00
Vinnie Falco
028fda0237
Fix stream::read_size_hint calculation
2017-08-04 19:02:13 -07:00
Vinnie Falco
576edfaaed
eof on accept returns error::closed
2017-08-04 19:02:13 -07:00
Vinnie Falco
56a9e6ba9a
Call do_fail from read_some
2017-08-04 19:02:13 -07:00
Vinnie Falco
756de5d703
Refactor fail/clode code
2017-08-04 19:02:13 -07:00
Vinnie Falco
34c982b0e7
vcxproj workaround for include symlinks
2017-08-04 19:02:13 -07:00
Vinnie Falco
e9d01fe79f
Remove obsolete frame tests
2017-08-04 19:02:12 -07:00
Vinnie Falco
387d68f336
Reorder define test macro params
2017-08-04 19:02:12 -07:00
Vinnie Falco
2567f49fb5
Rename test macros
2017-08-04 19:02:12 -07:00
Vinnie Falco
444ef321a5
Remove unused test header
2017-08-04 19:02:07 -07:00
Vinnie Falco
c495f946c9
Fix doc includes
2017-08-03 08:53:12 -07:00
Vinnie Falco
69c9ec5d9f
Fix doc convenience includes
2017-08-03 07:47:49 -07:00
Nik Bougalis
db92ec9127
Fix doc typo
2017-08-03 04:22:08 -07:00
Vinnie Falco
e5e25f5c17
Use correct handler signature in fail_op
...
fix #716
2017-08-03 04:21:24 -07:00
Vinnie Falco
7e1ade4169
Log the value of LIB_DIR for doc builds (debug)
2017-08-01 12:41:36 -07:00
Miguel Portilla
ee04fa096b
Trim utf8 checker test
2017-08-01 11:56:37 -07:00
Daniel James
66b07798e6
Use unique names for Jam projects
2017-08-01 11:31:50 -07:00
Vinnie Falco
0e5117e006
Fix bench-zlib cmake
2017-08-01 06:18:13 -07:00
Vinnie Falco
a7069f184e
basic_fields::key_compare is noexcept
...
fix #704
2017-08-01 06:16:26 -07:00
Vinnie Falco
6be32a2b3d
Update redirect
2017-07-31 19:47:02 -07:00
Vinnie Falco
7b364af6e0
Less compression on websocket test
2017-07-31 19:02:48 -07:00
Vinnie Falco
7b90ff852d
Faster zlib tests
2017-07-31 19:02:48 -07:00
Vinnie Falco
b0d7bc2e86
Add bench-zlib
2017-07-31 19:02:47 -07:00
Vinnie Falco
0a5a48f8da
Update boostorg links
2017-07-31 19:02:47 -07:00
Vinnie Falco
81c306ed13
Fix library.json
2017-07-31 19:02:47 -07:00
Vinnie Falco
3fb5d60db2
Rename wsload compile target
2017-07-31 19:02:46 -07:00
Vinnie Falco
00f237bbf6
Use valgrind property
2017-07-31 19:02:46 -07:00
Vinnie Falco
030f5eef87
Move extras/ to test/
2017-07-31 19:02:46 -07:00
Vinnie Falco
df9ec6c7f3
Move bench/ to test/
2017-07-31 19:02:46 -07:00
Vinnie Falco
8def3b1ba7
Add valgrind variant, fix false positives
2017-07-31 12:37:32 -07:00
Vinnie Falco
0a3029b8ac
Fix html redirect
2017-07-31 09:07:21 -07:00
Vinnie Falco
c27fbf826d
Tidy up static_buffer braced init
2017-07-31 09:07:21 -07:00
Vinnie Falco
6e3c63e685
Add test::stream
2017-07-31 09:07:21 -07:00
Vinnie Falco
ef8206041b
close on test::pipe teardown
2017-07-31 09:07:20 -07:00
Vinnie Falco
cd2f2b56d0
Fix race in test::pipe
2017-07-31 09:07:20 -07:00
Vinnie Falco
009d4f38ab
Tidy up Travis build scripts
2017-07-31 09:07:20 -07:00
Vinnie Falco
8fbb358354
Use off-site Quick Start link temporarily
2017-07-30 12:09:53 -07:00
Daniel James
d99d516c13
Unset BOOST_COROUTINES_NO_DEPRECATION_WARNING
...
fix #700
2017-07-29 17:06:20 -07:00
Vinnie Falco
79d36bb526
Use off-site doc link
2017-07-29 12:44:57 -07:00
Vinnie Falco
8bfa058daa
Tidy up doc snippet paths
2017-07-29 12:44:41 -07:00
Vinnie Falco
ea35f6f770
Ignore Content-Length in some cases:
...
fix #692
The value of Content-Length is not checked for limits
when the semantics of an HTTP response indicate that
the message has no body. For example, when status is 101.
2017-07-29 12:44:28 -07:00
Vinnie Falco
c465ed5a69
Update repository links in source comments
2017-07-29 12:44:10 -07:00
Vinnie Falco
c57f9ba18e
basic_fields::value_type is not copyable
...
fix #697
2017-07-29 03:51:22 -07:00
Vinnie Falco
b5d9ce8a27
Fix typo in test/CMakeLists.txt
2017-07-29 03:39:34 -07:00
Vinnie Falco
809e822789
Refactor test build scripts
2017-07-29 00:26:05 -07:00
Vinnie Falco
61b2b63b57
Update doc copyrights
2017-07-29 00:25:00 -07:00
Vinnie Falco
8bf86bd2fa
Build stand-alone doc
2017-07-29 00:25:00 -07:00
Vinnie Falco
b2d58d60f9
Fix doc title
2017-07-28 19:30:28 -07:00
Vinnie Falco
698884d8bb
Move benchmarks to bench/
2017-07-28 18:55:32 -07:00
Vinnie Falco
e15448a83a
control frame callbacks are non-const references:
...
fix #653
Actions Required:
* Modify calls to set the control frame callback, to
pass non-const reference instances, and manage the
lifetime of the instance.
2017-07-28 17:07:25 -07:00
Vinnie Falco
629872b28f
Update project metadata
2017-07-28 17:07:25 -07:00
Vinnie Falco
90cba35f38
Fix Appveyor script
2017-07-28 17:07:25 -07:00
Vinnie Falco
6ab9bd2780
Use fopen_s on Windows
...
fix #691
2017-07-28 17:07:25 -07:00
Vinnie Falco
0dc2c9d810
Rename wstest source file
2017-07-28 17:07:24 -07:00
Vinnie Falco
f02353b7f5
Use Asio array optimization in static_buffer_base
...
fix #689
2017-07-28 17:07:24 -07:00
Vinnie Falco
467547fd9c
Set BOOST_ASIO_NO_DEPRECATED
2017-07-28 17:07:24 -07:00
Vinnie Falco
df73241a60
constexpr in derived buffers
...
fix #657
2017-07-28 17:07:24 -07:00
Vinnie Falco
18a698f7f6
Use read buffer instead of buffered stream
2017-07-28 17:07:24 -07:00
Vinnie Falco
70c1d361fd
Refactor accept, handshake ops
2017-07-28 17:07:23 -07:00
Vinnie Falco
07535d6289
Optimize buffered_read_stream
...
fix #651
2017-07-28 17:07:23 -07:00
Vinnie Falco
fd1b236159
Tidy up MSVC CMakeLists.txt
...
fix #650
2017-07-28 17:07:23 -07:00
Vinnie Falco
e87bac242b
Tidy up websocket javadocs
2017-07-28 17:07:23 -07:00
Vinnie Falco
c367309122
Tidy up namespace qualifiers
2017-07-28 17:07:23 -07:00
Vinnie Falco
ddd67ef30e
source.dox is path-independent
2017-07-28 17:07:23 -07:00
Vinnie Falco
f2da16c9f6
Don't build pre-C++11
2017-07-28 17:07:22 -07:00
Vinnie Falco
ff95002fd9
Adjust redirect html
2017-07-28 17:07:22 -07:00
Vinnie Falco
c28a700a00
Output to integrated documentation
2017-07-28 16:27:08 -07:00
Vinnie Falco
0fb562a4d7
Fix typo in equal_range
...
fix #688
2017-07-27 21:18:04 -07:00
Vinnie Falco
cbb47a0ffd
Fix websocket read of zero length message
...
fix #686
2017-07-27 19:09:15 -07:00
Vinnie Falco
0e79893d07
Fix CONTRIBUTING.md links
2017-07-27 10:14:06 -07:00
Vinnie Falco
a61578634b
Set version to 88
2017-07-26 18:45:22 -07:00
Vinnie Falco
ce82e6476d
Fix uninitialized frame done
2017-07-26 18:45:06 -07:00
Vinnie Falco
a5917c9044
Don't use program_options
2017-07-26 15:18:25 -07:00
Vinnie Falco
59f7819cf6
Refactor tests Jamfile
2017-07-26 11:46:01 -07:00
Vinnie Falco
f4c2cd7ec6
Update doc links in README.md
2017-07-26 09:54:22 -07:00
Vinnie Falco
e1495e4fe2
Update README, add CONTRIBUTING.md and CODE_OF_CONDUCT.md
2017-07-25 17:47:01 -07:00
Vinnie Falco
3cba28f308
variant fixes and tests
2017-07-25 15:58:07 -07:00
Vinnie Falco
c831afd93b
Rename to BEAST_EXPECT
2017-07-25 15:58:06 -07:00
Vinnie Falco
175763e773
Update appveyor for Boost branch
2017-07-25 15:58:06 -07:00
Vinnie Falco
e56d9955de
websocket read returns the number of bytes inserted (API Change):
...
* read and async_read now return the number of bytes inserted
into the caller's buffer.
Actions Required:
* Change the signature of completion handlers used with
websocket::stream::async_read to void(error_code, std::size_t)
2017-07-25 08:50:58 -07:00
Vinnie Falco
6e33072832
Add library metadata
2017-07-25 06:54:35 -07:00
Eliott Paris
73871cfb7f
Fix Deferred Body Type Example inconsistencies
...
Fix issue #675
2017-07-25 06:49:48 -07:00
Peter Dimov
31d2718eac
Use configured doxygen and xsltproc
2017-07-25 05:33:28 -07:00
Vinnie Falco
03ec8d4d4b
Normalize doc build scripts
2017-07-25 05:33:27 -07:00
Vinnie Falco
f642eebf00
Tidy up Jamfile
2017-07-24 16:12:34 -07:00
Vinnie Falco
5d65f81e5f
Remove spurious declaration
2017-07-24 14:47:31 -07:00
Vinnie Falco
8578f3cf76
Update copyrights
2017-07-24 09:42:51 -07:00
Vinnie Falco
982f4c3b70
Update documentation for boost
2017-07-24 09:41:27 -07:00
Vinnie Falco
198846d7bd
Update CMakeLists.txt for boost
2017-07-23 20:04:07 -07:00
Vinnie Falco
ad8c5f9f7f
Use winapi
2017-07-23 17:38:06 -07:00
Vinnie Falco
b80f9797f2
Add local-travis.sh
2017-07-23 17:36:47 -07:00
Vinnie Falco
a72839645d
Update README.md
2017-07-23 17:36:31 -07:00
Vinnie Falco
7317bd0de9
Use custom variant
2017-07-23 17:36:12 -07:00
Vinnie Falco
b97586b318
Remove use of lexical_cast
2017-07-23 17:34:41 -07:00
Vinnie Falco
7139dd639a
Boost prep
2017-07-23 17:34:13 -07:00
Vinnie Falco
e5a4dc6a96
Tidy up test warning
2017-07-22 20:09:24 -07:00
Sacha
c2ecb34404
Fix test failure
2017-07-22 20:09:21 -07:00
Vinnie Falco
cb501a07c8
WebSocket optimizations (API Change):
...
The websocket stream is optimized to contain a small
circular static buffer, reducing the number of I/O calls when
reading data. The size of the buffer is tuned for maximum
performance with TCP/IP and no long needs configuration:
* read_some replaces read_frame
* write_some replaces write_Frame
* async_read_some replaces async_read_frame
* async_write_some replaces async_write_frame
* websocket::stream::read_buffer_size is removed
Actions Required:
* Remove calls websocket::stream::read_buffer_size
* Use read_some and write_some instead of read_frame and write_frame
2017-07-20 08:15:32 -07:00
Vinnie Falco
8f3d5a094c
Add consuming_buffers::get
2017-07-20 08:15:32 -07:00
Vinnie Falco
4eb926cd67
bind_handler allows placeholders
2017-07-20 08:15:32 -07:00
Vinnie Falco
5e4a5592f3
multi_buffer is type-check friendly
2017-07-20 08:15:32 -07:00
Vinnie Falco
ed7c095df9
static_buffer::consume improvement
2017-07-20 08:15:32 -07:00
Vinnie Falco
85cd2b125b
Tidy up buffer_front
2017-07-20 08:15:32 -07:00
Adrian Imboden
871ebf1c1c
Fix private timer::clock_type
...
fix #662
2017-07-20 08:15:32 -07:00
Vinnie Falco
60e133ab4c
read_some, async_read_some return bytes used
...
fix #659
2017-07-20 08:15:32 -07:00
Vinnie Falco
04887c49e0
Documentation work
2017-07-20 08:15:32 -07:00
Vinnie Falco
4e44ddbd45
Add static_buffer (API Change):
...
* static_buffer is added
Note this is the same name from two versions ago, when
static_buffer was renamed to flat_static_buffer for
consistency and to clear the name for a circular static
buffer.
Actions Required:
* Callers who depend on static_buffer returning sequences of
exactly length one should switch to flat_static_buffer.
2017-07-20 08:15:32 -07:00
Vinnie Falco
cb21b117bf
Turn some flat_static_buffer_tests on
2017-07-20 08:15:32 -07:00
Vinnie Falco
2b89bbce41
Add wstest compression option
2017-07-20 08:15:32 -07:00
Vinnie Falco
47c07b0a59
Fix buffer lifetime in websocket write
2017-07-20 08:15:32 -07:00
Vinnie Falco
cee3bff060
Add buffer_front
2017-07-20 08:15:32 -07:00
Vinnie Falco
6fa9a97727
Add flat_static_buffer::mutable_data
2017-07-20 08:15:32 -07:00
Vinnie Falco
39358a2f93
Fix extraneous argument in async_write_header
...
fix #655
2017-07-20 08:15:32 -07:00
Vinnie Falco
d4eaa002a8
Silence spurious warning
2017-07-20 08:15:32 -07:00
Vinnie Falco
bd5ab6ffd0
Add wstest benchmark tool
2017-07-20 08:15:32 -07:00
Vinnie Falco
94e92e75b7
Rename to flat_static_buffer and flat_static_buffer_base (API Change):
...
Actions Required:
* Rename static_buffer to flat_static_buffer_base
* Rename static_buffer_n to flat_static_buffer
2017-07-20 08:15:31 -07:00
Vinnie Falco
1d7d7445d5
Add session_alloc to example/common
2017-07-20 08:15:31 -07:00
Vinnie Falco
8fa8ecb502
Use std::function and reference wrapper
2017-07-20 08:15:31 -07:00
Vinnie Falco
3c2d3181fc
accept requires a message
2017-07-20 08:15:31 -07:00
Vinnie Falco
efd715e55c
stream uses flat_buffer
2017-07-20 08:15:31 -07:00
Vinnie Falco
2dced4398e
Add rd_close_ to websocket stream state
2017-07-20 08:15:31 -07:00
Vinnie Falco
4d15fc455a
websocket::stream tidying
2017-07-20 08:15:31 -07:00
Robert Allan Hennigan Leahy
27d070c724
is_invocable works with move-only types:
...
fix #652
Previously reported that function objects
taking move only types by value were not invocable.
2017-07-20 08:15:31 -07:00
Vinnie Falco
2ea3240ed6
Documentation tidying
2017-07-20 08:15:31 -07:00
Vinnie Falco
4b71aa67e0
Refactor chunked parsing (API Change):
...
* parser now has a callback feature for intercepting chunk headers
and chunk bodies
* The names for basic_parser derived class callbacks have been
refactored
* basic_parser offers an additional callback for distinguishing
chunk body data.
Actions Required:
* Adjust signatures for required members of user-defined
subclasses of basic_parser
* Use the new basic_parser chunk callbacks for accessing
chunk extensions and chunk bodies.
2017-07-20 08:15:31 -07:00
Vinnie Falco
cc73d883be
File is not copy-constructible
2017-07-20 08:15:31 -07:00
Vinnie Falco
9ecd2a491e
multi_buffer ctor is explicit
2017-07-20 08:15:31 -07:00
Nik Bougalis
696c4169fc
Suppress incorrect GCC warning:
...
GCC will something generate an incorrect warning when compiling Beast
with the -Wmaybe-uninitialized flag.
For more details, see
http://www.boost.org/doc/libs/1_64_0/libs/optional/doc/html/boost_optional/tutorial/gotchas/false_positive_with__wmaybe_uninitialized.html
2017-07-20 08:15:31 -07:00
Vinnie Falco
78f3cd59a1
better is_final on empty_base_optimization
2017-07-20 08:15:31 -07:00
Vinnie Falco
b18d0d15b0
Pass string_view by value
2017-07-20 08:15:31 -07:00
Vinnie Falco
ff15cf8688
Refactor chunked-encoding serialization:
...
New buffer sequence classes are provided to allow full
control over the serialization of chunk-encoded message
payloads:
* chunk_header
A ConstBufferSequence representing the chunk header.
It includes a hexadecimal-encoded size, an optional
set of chunk extensions, and the trailing CRLF
required to denote the end of the chunk header.
This allows the caller to manually serialize the chunk
body in one or more calls to a stream output function.
The caller must also output an object of type `chunk_crlf`
to the stream to indicate the end of the chunk body.
* chunk_crlf
A small ConstBufferSequence that simply represents
the two character sequence "\r\n" (CRLF). This is needed
for the case where the caller wants to output a chunk
body as a series of buffers (i.e. "chunking a chunk").
* chunk_body
A ConstBufferSequence representing a complete chunk.
This includes the size, an optional set of chunk extensions,
a caller provided buffer containing the body, and the
required CRLF that follows.
* chunk_final
A ConstBufferSequence representing a final chunk. It
includes an optional set of caller-provided field trailers
* chunk_extensions
A container for building a set of chunk extensions to use
during serialization. The use of the container is optional,
callers may provide their own buffer containing a correctly
formatted set of chunk extensions, or they may use their
own convenience container which meets the requirements.
The basic_fields container is modified to allow construction
outside the context of a message. The container can be used
to provide trailers to `chunk_final`.
Actions Required:
* Remove references to ChunkDecorators. Use the new chunk-encoding
buffer sequences to manually produce a chunked payload body in
the case where control over the chunk-extensions and/or trailers
is required.
2017-07-20 08:15:31 -07:00
Vinnie Falco
02de2e5cbb
Shrink chunk header buffer sequence size
2017-07-20 08:15:31 -07:00
Vinnie Falco
e9c44030e4
buffers_ref is Assignable
2017-07-20 08:15:31 -07:00
Vinnie Falco
6cec63fc9e
Add basic_file_body.hpp
2017-07-20 08:15:31 -07:00
Vinnie Falco
42b81fb3a0
Remove unused file_path
2017-07-20 08:15:30 -07:00
Vinnie Falco
9bfb5374f1
Shrink buffer_prefix_view
2017-07-20 08:15:30 -07:00
Vinnie Falco
9ffb8e0f0f
Add basic_dynamic_body.hpp
...
fix #606
2017-07-20 08:15:30 -07:00
Vinnie Falco
b65f0abd50
Javadoc tidying
2017-07-20 08:15:30 -07:00
Vinnie Falco
b8867abf6d
Remove spurious fallthrough guidance
2017-07-20 08:15:30 -07:00
Vinnie Falco
30ea9bf668
Fix warning in root ca declaration
2017-07-20 08:15:30 -07:00
Vinnie Falco
93ae544f9c
Tidy up file_posix unused variable
2017-07-20 08:15:30 -07:00
Vinnie Falco
fa3c256883
Tidy up dstream for existing Boost versions
2017-07-20 08:15:30 -07:00
Vinnie Falco
a49b442969
Add Boost.Locale utf8 benchmark comparison
2017-07-20 08:15:30 -07:00
Vinnie Falco
5788ed2574
Remove string_view_body
...
Actions Required:
* Use span_body<char> instead of string_view_body
2017-07-20 08:15:30 -07:00
Vinnie Falco
fa45e6ad07
Tidy up FieldsReader doc
2017-07-20 08:15:30 -07:00
Vinnie Falco
83cef67fb4
Header file tidying
2017-07-20 08:15:30 -07:00
Vinnie Falco
ff05be32af
Fix warning in zlib
2017-07-20 08:15:30 -07:00
Vinnie Falco
6a46e48424
Add message keep_alive, chunked, content_length members
2017-07-20 08:15:30 -07:00
Vinnie Falco
aa473a6da4
Fix spurious uninitialized warning
2017-07-20 08:15:30 -07:00
Vinnie Falco
69b61656dd
Use make_unique_noinit
...
fix #605
2017-07-20 08:15:30 -07:00
Vinnie Falco
f34d4f7204
span, string, vector bodies are public
2017-07-20 08:15:30 -07:00
Vinnie Falco
1f41c124c0
Documentation work
2017-07-20 08:15:30 -07:00
Vinnie Falco
80eb5af584
Add span
2017-07-20 08:15:30 -07:00
Vinnie Falco
e1de01ad13
Add vector_body
...
fix #580
2017-07-20 08:15:30 -07:00
Vinnie Falco
c6d7fa185b
Tidy up basic_string_body
...
fix #580
2017-07-20 08:15:30 -07:00
Vinnie Falco
eb4a4d41f0
file_posix works without large file support
...
fix #632
2017-07-20 08:15:30 -07:00
Vinnie Falco
152720efaf
Disable SSE4.2 optimizations
2017-07-20 08:15:30 -07:00
Vinnie Falco
a00ce1209b
Fix parse illegal characters in obs-fold
2017-07-20 08:15:30 -07:00
Vinnie Falco
f657057c49
Add file_body_win32:
...
basic_file_body is specialized for file_win32:
When serializing file bodies to stream sockets on Windows,
the native platform function ::TransmitFile is used, improving
performance.
2017-07-20 08:15:30 -07:00
Vinnie Falco
cc198db10e
serializing file_body is not const
2017-07-20 08:15:30 -07:00
Vinnie Falco
e06a055503
BodyReader, BodyWriter use two-phase init (API Change):
...
These types now perform error-based initialization in
a separate init() functions instead of in the constructor.
Actions Required:
* Modify instances of user-defined BodyReader and BodyWriter
types to perfrom two-phase initialization, as per the
updated documented type requirements.
2017-07-20 08:15:30 -07:00
Vinnie Falco
8a3df73ffc
Serializer members are not const
2017-07-20 08:15:30 -07:00
Vinnie Falco
83403570bd
Rename to serializer::keep_alive (API Change):
...
The serializer member is renamed to keep_alive()
Actions Required:
* Use serializer::keep_alive instead of serializer::close and
take the logical NOT of the return value.
2017-07-20 08:15:30 -07:00
Vinnie Falco
a369f7d9ff
Add serializer::chunked
2017-07-20 08:15:30 -07:00
Vinnie Falco
c52ddea11d
Add serializer::get
2017-07-20 08:15:30 -07:00
Vinnie Falco
db59a92011
BodyReader may construct from a non-const message
...
fix #619
2017-07-20 08:15:30 -07:00
Vinnie Falco
0324dc371f
Use Boost.Config
2017-07-20 08:15:30 -07:00
Vinnie Falco
f65a611b85
Always go through write_some:
...
HTTP stream serialization algorithms always go
through write_some or async_write some.
2017-07-20 08:15:30 -07:00
octopus-prime
288f363fa6
Using SSE4.2 intrinsics in basic_parser if available
...
fix #622
2017-07-20 08:15:30 -07:00
Vinnie Falco
b1a8cf8a13
file_body tests
2017-07-20 08:15:30 -07:00