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
Vinnie Falco
731164bec2
Add serializer::limit
2017-07-20 08:15:30 -07:00
Vinnie Falco
d750364d6f
Shrink serializer buffers using buffers_ref
2017-07-20 08:15:30 -07:00
Vinnie Falco
bb0e86ac01
Tidy up BEAST_NO_BIG_VARIANTS
2017-07-20 08:15:30 -07:00
Vinnie Falco
8ee911f632
Construct buffer_prefix_view in-place
2017-07-20 08:15:30 -07:00
Christopher Kohlhoff
8179019590
Use file_body for valid requests, string_body otherwise.
2017-07-20 08:15:30 -07:00
Andrzej Krzemieński
d6bac17bff
remove redundant flush() from example:
...
`<<std::endl` already flushes the stream; no need for a separate call.
2017-07-20 08:15:30 -07:00
Keith Bennett
1c9c87f93c
Fix Beast include directories for cmake targets
2017-07-20 08:15:30 -07:00
Vinnie Falco
eec5f1d8b6
Add file_posix
2017-07-20 08:15:30 -07:00
Vinnie Falco
e81026614a
Remove common/file_body.hpp
2017-07-20 08:15:30 -07:00
Vinnie Falco
8bf46ffa05
Add file_body
2017-07-20 08:15:30 -07:00
Vinnie Falco
7254cc8976
Add file_win32
2017-07-20 08:15:30 -07:00
Vinnie Falco
ddc3099281
Add file_stdio and File concept
2017-07-20 08:15:30 -07:00
Vinnie Falco
37461a1c4c
Fixes for gcc-4.8
2017-07-20 08:15:30 -07:00
Vinnie Falco
abdd89fde8
Initialize local variable in basic_parser
2017-07-20 08:15:30 -07:00
Vinnie Falco
48c0fcae50
Adjust benchmarks
2017-07-20 08:15:30 -07:00
Vinnie Falco
c01dddc4ac
Verify certificates in SSL clients
2017-07-20 08:15:30 -07:00
Vinnie Falco
4b9acaaa6d
Jamroot tweak
2017-07-20 08:15:30 -07:00
Vinnie Falco
f5ae60613f
serializer::next replaces serializer::get (API Change):
...
Actions Required:
* Use serializer::next instead of serializer::get at call sites
2017-07-20 08:15:29 -07:00
Vinnie Falco
b0e52dd246
Refactor header and message constructors:
...
fix #581
* request and response headers now have convenience
constructors so important fields like method, target,
result, and version may be set upon construction.
Actions Required:
* Evaluate each message constructor call site and
adjust the constructor argument list as needed.
2017-07-20 08:15:29 -07:00
Vinnie Falco
2ee088de5f
Add basic_parser tests
2017-07-20 08:15:29 -07:00
Vinnie Falco
e608acb791
basic_parser optimizations:
...
fix #185 , fix #489
* SSE4.2 is detected
* basic_parser uses SSE4.2 if available
* basic_parser tries to parse on the initial buffer and if
it does not find the end of header it shifts to a new
strategy of waiting for the end of header to defeat
slow loris attacks. This coincidentally is also faster
than the previous algorithm.
2017-07-20 08:15:29 -07:00
chriskohlhoff
7e61a48607
Various improvements to http_server_fast.cpp:
...
fix #578
- Receive request in a single read
- Use fields_alloc for response
- Fix command line usage information
- Add command line option to spin the io_service
2017-07-20 08:15:29 -07:00
Vinnie Falco
a281ca5384
Documentation tidying
2017-07-20 08:15:29 -07:00
Vinnie Falco
6b6c2e0f93
Add websocket-server-async example
2017-07-20 08:15:29 -07:00
Vinnie Falco
c12ded9abc
Add http-server-threaded example
2017-07-20 08:15:29 -07:00
Vinnie Falco
09df24ec62
Refactor file_body for best practices
2017-07-20 08:15:29 -07:00
Vinnie Falco
56948edd27
Newly constructed responses have a 200 OK result
2017-07-20 08:15:29 -07:00
Vinnie Falco
ff33783d11
Refine Body::size specification
2017-07-20 08:15:29 -07:00
Vinnie Falco
a2ca4e41ca
Tidy up set payload in http-server-fast
2017-07-20 08:15:29 -07:00
Vinnie Falco
d427b608e8
Tidy up Jamroot /permissive-
2017-07-20 08:15:29 -07:00
Vinnie Falco
8910ab44ae
Tidy up http_sync_port error check
2017-07-20 08:15:29 -07:00
Vinnie Falco
fcc83e6a19
Concept check in basic_dynamic_body
...
fix #750
2017-07-20 08:15:29 -07:00
octopus-prime
ebfc3f4537
Fix buffer overflow handling for string_body and mutable_body
...
fix #553 , fix #558
2017-07-20 08:15:29 -07:00
Vinnie Falco
c149321013
Return std::size_t from Body::writer::put (API Change)
...
`put` returns the number of bytes actually transferred
from the input buffers.
Actions Required:
* Return the number of bytes actually transferred from the
input buffers in user defined `Body::writer::put` functions.
2017-07-20 08:15:29 -07:00
Vinnie Falco
f3afc834b1
Check trailers in test
2017-07-20 08:15:29 -07:00
Vinnie Falco
2878b38b64
Call prepare_payload in HTTP example
2017-07-20 08:15:29 -07:00
Vinnie Falco
120c38948e
Fix spurious on_chunk invocation
2017-07-20 08:15:29 -07:00
Sacha
7f05f67464
Add options for building examples and tests.
...
Move zlib test sources to test/zlib
2017-07-20 08:15:29 -07:00
Vinnie Falco
6496aa89ee
Allow close, ping, and write to happen concurrently
2017-07-20 08:15:29 -07:00
Vinnie Falco
4ff3b524c6
Refactor websocket composed ops
2017-07-20 08:15:29 -07:00
Vinnie Falco
4c41db9ca8
Fine tune websocket asserts
2017-07-20 08:15:29 -07:00
Vinnie Falco
2843a497a0
Documentation revision
...
fix #567 , fix #572
2017-07-20 08:15:29 -07:00
Vinnie Falco
8b5b8335e6
Fix extra ; warning
2017-07-20 08:15:29 -07:00
octopus-prime
9fe7f6e415
Fix HEAD response in file_service
2017-07-20 08:15:29 -07:00
octopus-prime
0ab9975751
Fix BEAST_FALLTHROUGH in config
2017-07-20 08:15:29 -07:00
Vinnie Falco
7753d6eda2
Add parser::on_header to set a callback
2017-07-20 08:15:29 -07:00
Vinnie Falco
788550e833
Add basic_parser header and body limits:
...
fix #550
* default body limits are now 1MB/8MB
* default header limit is 8KB
Actions Required:
* Call body_limit and/or header_limit as needed to adjust the
limits to suitable values if the defaults are insufficient.
2017-07-20 08:15:29 -07:00
Vinnie Falco
3c4ae2a098
Rename to message::base (API Change):
...
Actions Required:
* Change calls to message::header_part() with message::base()
2017-07-20 08:15:29 -07:00
Vinnie Falco
7abe6f6e09
Serialize in one step when possible
...
fix #546
2017-07-20 08:15:29 -07:00
Vinnie Falco
c65074205b
Add /permissive- to msvc toolchain
2017-07-20 08:15:29 -07:00
Vinnie Falco
58d42cc803
Use BEAST_FALLTHROUGH to silence warnings
...
fix #545
2017-07-20 08:15:29 -07:00
Vinnie Falco
f3eaa409d1
basic_parser optimizations
2017-07-20 08:15:29 -07:00
Vinnie Falco
40f0649252
Link statically on cmake MSVC
2017-07-20 08:15:29 -07:00
octopus-prime
b5b1295d0c
Add const_body, mutable_body to examples
2017-07-20 08:15:29 -07:00
Vinnie Falco
2d6859831c
Optimize field lookups
2017-07-20 08:15:29 -07:00
Vinnie Falco
64ff766b23
Use string_ref in older Boost versions
...
fix #543
2017-07-20 08:15:29 -07:00
Vinnie Falco
43f8bb841a
bad_target replaces bad_path (API Change):
...
Actions Required:
* Replace references to http::error::bad_path with http::error::bad_target
2017-07-20 08:15:29 -07:00
Vinnie Falco
8207a53113
Adjust buffer size in fast server
2017-07-20 08:15:29 -07:00
Vinnie Falco
90b51c5f79
Small speed up in fields comparisons
2017-07-20 08:15:29 -07:00
Vinnie Falco
beead1a297
Split common tests to a new project
2017-07-20 08:15:29 -07:00
Vinnie Falco
edeb44617b
Remove BodyReader::is_deferred (API Change):
...
The is_deferred nested type is removed from the BodyReader
requirements.
Performance for sending messages with `file_body` was cut
almost in half with is_deferred as `std::true_type` since
it caused double the number of socket writes. If the
deferred behavior is absolutely necessary, callers can get
the same effect by manually sending the headers first.
Actions Required:
* Callers who need the behavior of is_deferred as `std::true_type`
should manually construct a serializer and serialize the header
first, followed by the body.
2017-07-20 08:15:29 -07:00
Vinnie Falco
bf59634bc2
Change BodyReader, BodyWriter requirements (API Change):
...
Actions Required:
* Change user defined instances of BodyReader and BodyWriter
to meet the new requirements.
2017-07-20 08:15:29 -07:00
Vinnie Falco
bb1dd72638
Group common example headers
2017-07-20 08:15:29 -07:00
Vinnie Falco
84d7601bdf
Rename to http-server-fast
2017-07-20 08:15:29 -07:00
Vinnie Falco
e7b01dc5c4
control_callback replaces ping_callback (API Change):
...
fix #322
The new callback is informed of all frame types including close.
Actions Required:
* Change calls to websocket::stream::ping_callback to use
websocket::stream::control_callback
* Change user defined ping callbacks to have the new
signature and adjust the callback definition appropriately.
2017-07-20 08:15:28 -07:00
Vinnie Falco
44824a4166
Use boost::string_view
2017-07-20 08:15:28 -07:00
Vinnie Falco
cc1c02e236
Merge stream_base to stream and tidy
2017-07-20 08:15:28 -07:00
Vinnie Falco
fc15f5e0b2
Add http-server-small example
2017-07-20 08:15:28 -07:00
Vinnie Falco
3570895391
Fix doc example link
2017-07-20 08:15:28 -07:00
Vinnie Falco
9f0dbb4265
Squelch spurious warning on gcc
2017-07-20 08:15:28 -07:00
Vinnie Falco
e5f1d4d010
Add http-server example
2017-07-20 08:15:28 -07:00
Vinnie Falco
522d3bf378
basic_fields optimizations
2017-07-20 08:15:28 -07:00
Vinnie Falco
9f7f36a3e9
Add header aliases
2017-07-20 08:15:28 -07:00
Vinnie Falco
c2d3532da2
Tidy up message piecewise ctors
2017-07-20 08:15:28 -07:00
Vinnie Falco
dab5d3bc12
Handle bad_alloc in parser
2017-07-20 08:15:28 -07:00
Vinnie Falco
f2e8af23f4
Fix costly potential value-init in parser
2017-07-20 08:15:28 -07:00
Vinnie Falco
f0e32882e2
Make consuming_buffers smaller
2017-07-20 08:15:28 -07:00
Vinnie Falco
86244c8dcf
Add serializer request/response aliases
2017-07-20 08:15:28 -07:00
Vinnie Falco
518ae23383
string_param optimizations
2017-07-20 08:15:28 -07:00
Vinnie Falco
58c976ea73
Enable unused variable warning on msvc cmake
2017-07-20 08:15:28 -07:00
Vinnie Falco
d70a78bbda
Fix integer warnings
2017-07-20 08:15:28 -07:00
Vinnie Falco
6535d1734d
Fix narrowing in deflate_stream
2017-07-20 08:15:28 -07:00
Vinnie Falco
2900c26585
Fix narrowing in inflate_stream
2017-07-20 08:15:28 -07:00
Vinnie Falco
31b59f0b0f
Fix narrowing in ostream
2017-07-20 08:15:28 -07:00
Vinnie Falco
ef493d4489
Fix narrowing in static_ostream
2017-07-20 08:15:28 -07:00
Vinnie Falco
b5c69ff7c7
Fix integer types in deflate_stream::bi_reverse
2017-07-20 08:15:28 -07:00
Vinnie Falco
246f55321c
Enable narrowing warning on msvc cmake
2017-07-20 08:15:28 -07:00
Vinnie Falco
e477574681
Remove make_serializer (API Change):
...
Actions Required:
* Replace calls to make_serializer with variable declarations
2017-07-20 08:15:28 -07:00
Vinnie Falco
67f595eea8
Add link_directories to cmake
2017-07-20 08:15:28 -07:00
Vinnie Falco
bd4d1cbe91
async_write requires a non-const message:
...
This is necessary to meet the requirements for
asynchronous operations:
http://www.boost.org/doc/libs/1_64_0/doc/html/boost_asio/reference/asynchronous_operations.html
Specifically, that the caller must ensure the validity of the message
argument until the handler is invoked.
object
2017-07-20 08:15:28 -07:00
Vinnie Falco
77a4c36aeb
Better User-Agent in examples
...
fix #523
2017-07-20 08:15:28 -07:00
Vinnie Falco
67e3e801cb
Exemplars are compiled code
...
fix #455
2017-07-20 08:15:28 -07:00
Vinnie Falco
a8c2f54534
Simplify websocket write_op
...
fix #358
2017-07-20 08:15:28 -07:00
Vinnie Falco
4a68e3a1ce
Simplify ssl teardown composed op
...
fix #358
2017-07-20 08:15:28 -07:00
Vinnie Falco
6d489b4658
Simplify buffered_read_stream composed op
...
fix #358
2017-07-20 08:15:28 -07:00
Vinnie Falco
9ca2ca7db0
Set version to 63
2017-07-20 08:15:28 -07:00
Mike Ellery
ded950a052
Control running with valgrind explicitly
2017-07-20 08:15:28 -07:00
Vinnie Falco
3cb1451a43
Don't use cached Boost
2017-07-20 08:15:27 -07:00
Vinnie Falco
e5f0774687
Use std::to_string instead of lexical_cast
...
fix #518
2017-07-20 08:15:27 -07:00
Vinnie Falco
3efe8cc9dd
Put slow tests back for coverage builds
2017-07-20 08:15:27 -07:00
Vinnie Falco
f4c65a5ba6
Squelch harmless not_connected errors
2017-07-20 08:15:27 -07:00
Vinnie Falco
5613ce7e97
Add http::is_fields trait
...
fix #515
2017-07-20 08:15:27 -07:00
Vinnie Falco
56a561da9a
message::prepare_payload replaces message::prepare (API Change):
...
Actions Required:
* Change calls to msg.prepare to msg.prepare_payload. For messages
with a user-defined Fields, provide the function prepare_payload_impl
in the fields type according to the Fields requirements.
2017-07-20 08:15:27 -07:00
Vinnie Falco
f9f6e1e0cc
Refine FieldsReader concept (API Change)
...
* FieldsReader now requires chunked() and keep_alive()
* serializer logic calls into the reader to calculate
the message metadata
* Removed some of the previous requirements of FieldsReader
Actions Required:
* Implement chunked() and keep_alive() for user defined FieldsReader types.
2017-07-20 08:15:27 -07:00
Vinnie Falco
50902c3938
parser requires basic_fields (API Change):
...
* `parser` is now templated on Allocator
* `parser` only produces messages using `basic_fields<Allocator>`
as the Fields type.
* message-oriented read and async_read only work on messages
using basic_fields as the Fields type.
Actions Required:
* Callers using `parser` with Fields types other than basic_fields
will need to create their own subclass of basic_parser to work
with their custom fields type.
2017-07-20 08:15:27 -07:00
Vinnie Falco
72ce21927c
Avoid explicit operator bool for error
2017-07-20 08:15:27 -07:00
Vinnie Falco
4d393f4c2a
Clear the error faster
2017-07-20 08:15:27 -07:00
Vinnie Falco
fc09a4cad1
Tidy up namespaces in examples
2017-07-20 08:15:27 -07:00
Vinnie Falco
c3e2de29ef
Doc fixes and tidy
2017-07-20 08:15:27 -07:00
Vinnie Falco
79eb97fbd6
Add server-framework tests
2017-07-20 08:15:27 -07:00
Vinnie Falco
e4ed62df0b
Increase detail::static_ostream coverage
2017-07-20 08:15:27 -07:00
Vinnie Falco
ccf7412eaf
Remove libssl-dev from a Travis matrix item
...
fix #508
2017-07-20 08:15:27 -07:00
Vinnie Falco
abed397bc0
Don't run slow tests on certain targets
2017-07-20 08:15:27 -07:00
Vinnie Falco
2ee6646c60
Use one job less on CI
2017-07-20 08:15:27 -07:00
Vinnie Falco
0a4f964811
Tidy up resolver calls
2017-07-20 08:15:27 -07:00
Vinnie Falco
a4a4121444
Add multi_port to server-framework
2017-07-20 08:15:27 -07:00
Vinnie Falco
f6e0e5ef47
Tidy up http-crawl example
...
fix #513
2017-07-20 08:15:27 -07:00
Vinnie Falco
8f627b0748
Fix shadowing warnings
...
fix #510
2017-07-20 08:15:27 -07:00
Vinnie Falco
65932ee343
Add server-framework SSL HTTP and WebSocket ports
2017-07-20 08:15:27 -07:00
Vinnie Falco
74891560ae
Refactor WebSocket, HTTP examples:
...
fix #297 , fix #488
* Errors are checked and reported
* More comments explaining what is going on
* The connection is gracefully closed
WebSocket:
* Messages are drained before closing
2017-07-20 08:15:27 -07:00
Vinnie Falco
298bf5fbb1
Flush the output stream in the example
2017-07-20 08:15:27 -07:00
Vinnie Falco
c8b8439ebc
Tidy up names in error categories
2017-07-20 08:15:27 -07:00
Vinnie Falco
5a2d78849f
status-codes is unsigned (API Change)
2017-07-20 08:15:27 -07:00
Vinnie Falco
798ff25795
header::version is unsigned (API Change)
2017-07-20 08:15:27 -07:00
Vinnie Falco
8c3cc96a27
Add message::header_part()
2017-07-20 08:15:27 -07:00
Vinnie Falco
30e6426db5
Tidy up some integer conversion warnings
2017-07-20 08:15:27 -07:00
Vinnie Falco
9be141a1e0
Reorganize SSL examples
2017-07-20 08:15:27 -07:00
Vinnie Falco
a26017d695
Use generic_cateogry for errno
2017-07-20 08:15:27 -07:00
Vinnie Falco
cdff15e021
Remove Spirit dependency
2017-07-20 08:15:27 -07:00
Vinnie Falco
fd9a13b11f
New server-framework, full featured server example:
...
A new server framework is introduced, allowing users to
quickly get off the ground. Example servers are refactored
to use the common framework.
2017-07-20 08:15:26 -07:00
Vinnie Falco
e856c46864
Fix response message type in async websocket accept
2017-07-20 08:15:26 -07:00
Vinnie Falco
b5306a5712
String comparisons are public interfaces
2017-07-20 08:15:26 -07:00
Vinnie Falco
79d599c9d1
Remove obsolete doc/README.md
2017-07-20 08:15:26 -07:00
Vinnie Falco
321aa8527d
Fix base64 alphabet
...
fix #500
2017-07-20 08:15:26 -07:00
Vinnie Falco
611e610c0c
Change Body::size signature (API Change):
...
fix #497
This changes the function signature to accept the `value_type`
instead of the entire message.
Actions Required:
* For any user-defined models of Body, change the function signature
to accept `value_type const&` and modify the function definition
accordingly.
2017-07-20 08:15:26 -07:00
Vinnie Falco
e5a7ff300f
Better message formal parameter names
...
fix #476
2017-07-20 08:15:26 -07:00
Vinnie Falco
dba4be01ab
Fix parsing chunk size with leading zeroes
...
fix #496
2017-07-20 08:15:26 -07:00
Vinnie Falco
5808fa247b
Remove redundant code
2017-07-20 08:15:26 -07:00
Vinnie Falco
500fa6aaaa
Use static string in basic_fields::reader
...
fix #493
2017-07-20 08:15:26 -07:00
Vinnie Falco
b4c2073973
basic_parser::put doc
...
fix #494
2017-07-20 08:15:26 -07:00
Vinnie Falco
648d1bc789
basic_fields::set optimization:
...
fix #495
2017-07-20 08:15:26 -07:00
Vinnie Falco
f64109d79a
Fix basic_fields insert ordering
2017-07-20 08:15:26 -07:00
Vinnie Falco
06290dc39f
Avoid std::string in websocket
2017-07-20 08:15:26 -07:00
Vinnie Falco
eb7e971c7a
Renamed to basic_fields::set (API Change):
...
* `replace` is renamed to `set`
Actions Required:
* Rename calls to `basic_fields::replace` to `basic_fields::set`
2017-07-20 08:15:26 -07:00
Vinnie Falco
6531a3c6d3
Specification for http read
2017-07-20 08:15:26 -07:00
Vinnie Falco
510092d34b
Reorganize examples:
...
* The examples/ directory is renamed to example/
* Each program is in its own directory with its own build scripts
2017-07-20 08:15:26 -07:00
Vinnie Falco
02419f53fa
Qualify size_t in message template
2017-07-20 08:15:26 -07:00
Vinnie Falco
1002502068
Fix unaligned reads in utf8-checker
2017-07-20 08:15:26 -07:00
Vinnie Falco
164569157a
Update doc/ for docca
2017-07-20 08:15:26 -07:00
Vinnie Falco
2eeedb8a41
Fix warning in basic_parser.cpp
2017-07-20 08:12:20 -07:00
Vinnie Falco
61a83ba769
Fix message.hpp javadocs
2017-07-20 08:12:20 -07:00
Vinnie Falco
82d76e4882
Convert buffer in range loops
...
fix #485
2017-07-20 08:12:20 -07:00
Sacha
1037c5bfba
Add Beast INTERFACE CMake target
2017-07-20 08:12:20 -07:00
Vinnie Falco
9939320c83
More basic_parser tests
2017-07-20 08:12:20 -07:00
Vinnie Falco
ca109693fb
Reset error codes
...
fix #478
2017-07-20 08:12:20 -07:00
Vinnie Falco
b9acbb537f
Try harder to find Boost (cmake)
...
fix #480
2017-07-20 08:12:20 -07:00
Vinnie Falco
5058217c35
HTTP/1 is the default version
...
fix #482
2017-07-20 08:12:20 -07:00
Vinnie Falco
0eb3a6b77e
Call on_chunk when the extension is empty
...
fix #435
2017-07-20 08:12:20 -07:00
Vinnie Falco
7712ca09b2
Add string_view_body
2017-07-20 08:12:20 -07:00
Vinnie Falco
0f54bc72a4
Add provisional IANA header field names
...
fix #473
2017-07-20 08:12:20 -07:00
Vinnie Falco
4d21f8d2cf
Revert "Add a Beast CMake interface target:"
...
This reverts commit 906db45bec35ce9bb4ba0448aaa4c8955f3c62e2.
2017-07-20 08:12:20 -07:00
Vinnie Falco
a49c096042
read_size replaces read_size_helper:
...
* detail::read_size_helper is removed
* public function read_size helps determine the optimum
size for calls to a DynamicBuffer's prepare function.
* special case for Asio types which don't conform to
the concept but have their own helper function.
2017-07-20 08:12:20 -07:00
Vinnie Falco
ff8be0e931
Avoid a parser allocation using non-flat buffer:
...
When the parser is presented with an input buffer
sequence with length greater than one, the input is
flattened using stack space instead of dynamic
allocation if the buffer size is no greater than 8192.
2017-07-20 08:12:19 -07:00
Sacha
3c453209fe
Add a Beast CMake interface target:
...
fix #461
This target allows other CMake projects to acquire
the Beast headers and link libraries easily.
2017-07-20 08:12:19 -07:00
Vinnie Falco
87c6e69d9f
Don't allocate memory to handle obs-fold
2017-07-20 08:12:19 -07:00
Vinnie Falco
857fc22667
Fix incorrect use of [[fallthrough]]
...
fix #468
2017-07-20 08:12:19 -07:00
Vinnie Falco
f44380159a
Retain ownership when reading using a message
...
fix #469
2017-07-20 08:12:19 -07:00
Vinnie Falco
8c4136bb73
basic_fields refactor (API Change):
...
* Container interface more closely matches std::vector
* While preserving the invariant that duplicate fields
with the same case-insensitive name have their order
preserved.
2017-07-20 08:12:19 -07:00
Vinnie Falco
0d70d90b75
Add string_param
...
fix #451
2017-07-20 08:12:19 -07:00
Vinnie Falco
49a2b33b82
basic_fields members and coverage
2017-07-20 08:12:19 -07:00
Vinnie Falco
e58833d7dd
consuming_buffers members and coverage
2017-07-20 08:12:19 -07:00
Vinnie Falco
260b506520
multi_buffer members and coverage
...
fix #458
2017-07-20 08:12:19 -07:00
Vinnie Falco
5d6d486da4
flat_buffer coverage
2017-07-20 08:12:19 -07:00
Vinnie Falco
99f2425de4
static_buffer coverage
2017-07-20 08:12:19 -07:00
Vinnie Falco
78f4858e98
Fix read_size_helper usage:
...
read_size_helper can return zero if the buffer reaches
its maximum size, causing infinite loops in HTTP. The
function maybe_read_size_helper is provided to throw
an exception instead of returning a value for this case.
2017-07-20 08:12:19 -07:00
Vinnie Falco
e4fdeecc3b
Fix basic_parser::maybe_flatten ( #462 )
2017-07-20 08:12:19 -07:00
Vinnie Falco
140246957e
Set version to 52
2017-07-20 08:12:19 -07:00
Vinnie Falco
5149cf8495
Add drain_buffer class
...
fix #457
2017-07-20 08:12:19 -07:00
Vinnie Falco
23863230de
flat_buffer is an AllocatorAwareContainer
...
fix #453
2017-07-20 08:12:19 -07:00
Vinnie Falco
b49b23ee83
finish(error_code&) is a BodyReader requirement (API Change)
2017-07-20 08:12:19 -07:00
Vinnie Falco
64742a4183
opcode is private (API Change):
...
* The opcode enum is removed.
Actions Required:
* Remove all occurences of the `opcode` enum at call sites
2017-07-20 08:12:19 -07:00
Vinnie Falco
ce70d45c7a
Disable std::future snippet for libstdc++ bug
2017-07-20 08:12:19 -07:00
Vinnie Falco
9e910761cc
read_frame returns bool
fin (API Change):
...
* frame_info struct is removed
* read_frame and async_read_frame return a bool indicating
if the frame is the last frame of the current message.
Actions Required:
* Remove the frame_info parameter from all read frame call sites
* Check the return value 'fin' for calls to read_frame
* Change ReadHandlers passed to async_read_frame to have
the signature void(error_code, bool fin), use the bool
to indicate if the frame is the last frame.
2017-07-20 08:12:19 -07:00
Vinnie Falco
620ce08d6a
Remove opcode from read, async_read (API Change):
...
fix #446
* Read signatures no longer include `opcode`
* stream::got_binary and stream::got_text inform the caller if
the current incoming message is binary or text.
Actions Required:
* Remove the `opcode` reference parameter from calls to synchronous
and asynchronous read functions, replace the logic with calls to
stream::got_binary and stream::got_text instead.
2017-07-20 08:12:19 -07:00
Vinnie Falco
3d6574da81
ping_callback is a member of stream (API Change):
...
fix #446
* The ping_callback option struct is removed.
Actions Required:
* Change call sites which use ping_callback with set_option to
call stream::ping_callback instead.
2017-07-20 08:12:19 -07:00
Vinnie Falco
333067243f
write_buffer_size is a member of stream (API Change):
...
fix #446
* The write_buffer_size option struct is removed.
Actions Required:
* Change call sites which use write_buffer_size with set_option to
call stream::write_buffer_size instead.
2017-07-20 08:12:19 -07:00
Vinnie Falco
b9dbb76c4f
read_message_max is a member of stream (API Change):
...
fix #446
* The read_message_max option struct is removed.
Actions Required:
* Change call sites which use read_message_max with set_option to
call stream::read_message_max instead.
2017-07-20 08:12:19 -07:00
Vinnie Falco
513a54835c
read_buffer_size is a member of stream (API Change):
...
fix #446
* The read_buffer_size option struct is removed
Actions Required:
* Change call sites which use read_buffer_size with set_option to
call stream::read_buffer_size instead.
2017-07-20 08:12:19 -07:00
Vinnie Falco
e6c0d698ee
binary, text are members of stream (API Change):
...
fix #446
* message_type is removed
Actions Required:
* Change call sites which use message_type with set_option
to call stream::binary or stream::text instead.
2017-07-20 08:12:19 -07:00
Vinnie Falco
f22895224b
auto_fragment is a member of stream (API Change):
...
fix #374 , fix #446
* auto_fragment option struct is removed
Actions Required:
* Change call sites which use auto_fragment with set_option
to call stream::auto_fragment instead.
2017-07-20 08:12:19 -07:00
Vinnie Falco
04522398e0
Fix infinite loop in basic_parser
...
fix #452
2017-07-20 08:12:19 -07:00
Vinnie Falco
7b56f352b4
Add construct, destroy to handler_alloc
...
fix #432
2017-07-20 08:12:19 -07:00
Vinnie Falco
196d9c60fa
multi_buffer implementation change (API Change):
...
fix #440
WARNING
multi_buffer constructor now takes a maximum size instead of the
"allocation size". This is a breaking change. The allocation size
feature is removed. To update calling code, remove the allocation
size parameter from call sites.
* multi_buffer now uses a geometric growth algorithm for better performance.
2017-07-20 08:12:19 -07:00
Vinnie Falco
74c26a8869
DynamicBuffer benchmarks
...
fix #441
2017-07-20 08:12:19 -07:00
Vinnie Falco
4bbb21d7af
Use BOOST_STRINGIZE
...
fix #384
2017-07-20 08:12:19 -07:00
Vinnie Falco
55358835c6
Use BOOST_FALLTHROUGH
...
fix #437
2017-07-20 08:12:19 -07:00
Niklas Schnelle
38c36ac655
Fix file_body::get() not setting the more flag correctly
...
The check for more data actually checked if the end of data was reached
so it was logically inverted.
This fixes #434
2017-07-20 08:12:19 -07:00
Vinnie Falco
9af1b35252
Tidy up file_body
...
fix #439
2017-07-20 08:12:19 -07:00
Vinnie Falco
7952578e1d
Tune up static_buffer (API Change):
...
The static buffer is updated:
* reset() is no longer a member. Use b.consume(b.size()) instead.
* Simplified implementaton, uses asio instead of custom types
* Better stream performance: consuming the input makes room
available in the output. This class is now suitable for
HTTP reads.
These changes permit the static_buffer wrapper to adapt a user
memory buffer if desired, including a stack based array.
The static_buffer_n class may also be used for this purpose,
it comes with its own storage.
2017-07-20 08:12:19 -07:00
Vinnie Falco
0a5fec1e9d
Fix operator<< for header
2017-07-20 08:12:19 -07:00