Vinnie Falco
312bd6b21d
Optimize mask operations
2017-07-20 08:12:13 -07:00
Miguel Portilla
d91fbd0611
Optimize utf8 validation
2017-07-20 08:12:13 -07:00
Vinnie Falco
804038095c
Set version to 1.0.0-b18
2017-07-20 08:12:13 -07:00
Vinnie Falco
f904759877
Add websocket::stream pong and async_pong
2017-07-20 08:12:13 -07:00
Vinnie Falco
f56d4fe74b
Close connection during async_read on close frame:
...
fix #163
2017-07-20 08:12:13 -07:00
Vinnie Falco
a2ea4f38c1
Move clamp to core
2017-07-20 08:12:13 -07:00
Vinnie Falco
a878165e36
Fix write_frame masking and auto-fragment handling
2017-07-20 08:12:13 -07:00
Vinnie Falco
dfb2d05be3
Write buffer option does not change capacity
2017-07-20 08:12:13 -07:00
Vinnie Falco
74e77682c7
Meet DynamicBuffer requirements for static_streambuf
2017-07-20 08:12:13 -07:00
Vinnie Falco
4e25e0f99e
Reorganize source files and definitions
2017-07-20 08:12:13 -07:00
Vinnie Falco
1a53f52e34
Check invariants in parse_op:
...
This adds more assertions, comments, and clarification.
2017-07-20 08:12:13 -07:00
Vinnie Falco
8f6e238ab9
Clean up message docs
2017-07-20 08:12:13 -07:00
Vinnie Falco
0e1be4d2cb
Set version to 1.0.0-b17
2017-07-20 08:12:13 -07:00
Vinnie Falco
48674cd482
Trim unused code
2017-07-20 08:12:13 -07:00
Vinnie Falco
4f68ec7b7b
Doc fixes
2017-07-20 08:12:13 -07:00
Andrew Whatson
ed23fd5811
Fix unused parameter warnings and missing includes:
...
fix #127
* Added beast::detail::ignore_unused based on boost::ignore_unused
* Added -Wextra compilation flag when building with gcc
* Fixed all unused parameter warnings with ignore_unused
* Fixed all missing includes when building each .hpp separately
2017-07-20 08:12:13 -07:00
Miguel Portilla
0a1c24eb9f
Refactor read_size_helper
2017-07-20 08:12:13 -07:00
Vinnie Falco
ae58a7f457
Engaged invokable is destructible:
...
fix #147
2017-07-20 08:12:13 -07:00
Vinnie Falco
f3b22f74b2
Add headers_parser:
...
This allows just the HTTP headers to be parsed, and
the choice of body to be deferred to a subsequent
call to parse.
2017-07-20 08:12:13 -07:00
Vinnie Falco
4ded6cff76
Fix handling of body_what::pause in basic_parser_v1
2017-07-20 08:12:13 -07:00
Vinnie Falco
6832bd57d3
Add basic_parser_v1::reset
2017-07-20 08:12:13 -07:00
Vinnie Falco
83556937f6
Add on_body_what parser callback (API Change):
...
These changes support parsing the headers separately from the body.
* on_headers now returns void
* on_body_what is a new required callback which returns body_what
2017-07-20 08:12:13 -07:00
Vinnie Falco
ac07d0c3ed
Fix parser traits detection (API Change):
...
basic_parser_v1 now requires that all callbacks appropriate
to the message are present and have the correct signatures.
Compile errors will result from compiling parsers which are
missing callbacks.
2017-07-20 08:12:13 -07:00
Vinnie Falco
e45a6418ee
Tidy up documentation:
...
fix #135
* Fix broken references
* Move doc debug headers to extras/
* Add rfc7230 utility classes to quick reference
2017-07-20 08:12:13 -07:00
Vinnie Falco
81cd98ece5
Tidy up basic_headers for documentation
2017-07-20 08:12:13 -07:00
Vinnie Falco
a4d8a154b1
Refine message class hierarchy:
...
Two new objects, request_headers and response_headers,
represent the portion of HTTP messages excluding the body.
2017-07-20 08:12:13 -07:00
Vinnie Falco
056d6b94c2
Rework HTTP concepts (API Change):
...
fix #139 , fix #140
* Writer uses write instead of operator()
* Refactor traits to use void_t
* Remove is_ReadableBody, is_WritableBody
* Add has_reader, has_writer, is_Reader, is_Writer
* More friendly compile errors on failed concept checks
2017-07-20 08:12:13 -07:00
Vinnie Falco
f110e51dd1
HTTP Reader (API Change):
...
fix #114 , fix #117 , fix #136
* Added init() to Reader requirements
* Reader must be nothrow constructible
* Reader is now constructed right before reading the body
- The message passed on construction is filled in
2017-07-20 08:12:13 -07:00
Vinnie Falco
35d1ee54bc
Parser callbacks may not throw (API Change)
2017-07-20 08:12:13 -07:00
Vinnie Falco
6732af5822
Add basic_streambuf::alloc_size
...
fix #133
2017-07-20 08:12:13 -07:00
Vinnie Falco
92e7afb801
Fix basic_streambuf::capacity
2017-07-20 08:12:13 -07:00
Vinnie Falco
52be0dd06e
Tidying:
...
fix #85
* Remove unnecessary boost/system includes
* Remove unused headers_type from write_preparation
* Use braced-init style construction
* handler_alloc doc update
2017-07-20 08:12:13 -07:00
Vinnie Falco
8918b2aceb
Set version to 1.0.0-b16
2017-07-20 08:12:13 -07:00
Vinnie Falco
0eb3605232
Refactor base_parser_v1 callback traits:
...
When the derived class provides a member function with the
corresponding callback name, but the signature is different,
a compile error will be generated instead of silently ignoring
the member function.
2017-07-20 08:12:13 -07:00
Vinnie Falco
2106f364f6
Add pause option to on_headers interface:
...
* on_headers returns enum body_what
* body_what::pause lets caller receive headers during the parse
2017-07-20 08:12:12 -07:00
Vinnie Falco
ce18124566
Improve first line serialization
2017-07-20 08:12:12 -07:00
Vinnie Falco
a26a8ea433
Constrain parser_v1 constructor
2017-07-20 08:12:12 -07:00
Vinnie Falco
bca43529b0
Refine Parser concept:
...
* Parser is not HTTP-specific
* parse algorithms are in their own header
* Update documentation
2017-07-20 08:12:12 -07:00
Vinnie Falco
18eeddfab6
Fix on_headers called twice from basic_parser_v1
2017-07-20 08:12:12 -07:00
Vinnie Falco
5855b34d6e
Make auto_fragment a boolean option
2017-07-20 08:12:12 -07:00
Vinnie Falco
1156b483c4
Rename to write_buffer_size
2017-07-20 08:12:12 -07:00
Vinnie Falco
74f9211366
Frame processing routines are member functions
2017-07-20 08:12:12 -07:00
Vinnie Falco
fbc8ddbc81
Make value optional in param-list
2017-07-20 08:12:12 -07:00
Vinnie Falco
ad966d6217
Set version to 1.0.0-b15
2017-07-20 08:12:12 -07:00
Radoslaw Zarzynski
bc665ee1ec
Fix handling empty HTTP headers in parser_v1.hpp
...
This patch rectifies flush() of beast::http::parser_v1
to properly handle the case when an HTTP header has
empty value.
Without the fix an empty-valued HTTP header is being
concatenated with the header directly following it.
This situation can be replicated using eg. curl:
curl <url> -H "X-First;" -H "X-Second: bla"
What Beast's client would see is a single header named
as "X-FirstX-Second".
2017-07-20 08:12:12 -07:00
Vinnie Falco
6b0b016b21
Tidy up error types:
...
* Restructure header material
* Clean up namespace type injections
* Remove extraneous 'success' constants
2017-07-20 08:12:12 -07:00
Vinnie Falco
f2a283ed10
Tidy up DynamicBuffer requirements
2017-07-20 08:12:12 -07:00
Vinnie Falco
9135cdff1a
Fix message_v1 constructor
2017-07-20 08:12:12 -07:00
Vinnie Falco
62bd4bb13f
rfc7230 section 3.3.2 compliance
2017-07-20 08:12:12 -07:00
Vinnie Falco
0a347f2b25
Set version to 1.0.0-b14
2017-07-20 08:12:12 -07:00