Miguel Portilla
d91fbd0611
Optimize utf8 validation
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
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
c75992a4af
Higher optimization settings for MSVC builds
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
bac57e08e9
unit_test improvements:
...
* New overload of fail() specifies file and line
* BEAST_EXPECTS only evaluates the reason string on a failure
- This speeds up tests that call BEAST_EXPECTS
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
4f68ec7b7b
Doc fixes
2017-07-20 08:12:13 -07:00
Miguel Portilla
0a1c24eb9f
Refactor read_size_helper
2017-07-20 08:12:13 -07:00
Denis Andrejew
753281959e
Improve websocket example in README.md
...
fix #138
* Refactoring for clarity
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
Evgeniy
8a64367d98
Change implicit_value to default_value
2017-07-20 08:12:13 -07:00
Vinnie Falco
bfaa4d2530
Fix websocket failure tests
2017-07-20 08:12:13 -07:00
Vinnie Falco
aed6c0e288
Relax ForwardIterator requirements in FieldSequence
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
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
e8527babeb
Add Secure WebSocket example
2017-07-20 08:12:12 -07:00
Vinnie Falco
2ad5223d80
Add HTTPS example
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
9cc65c8850
Update and tidy documentation
2017-07-20 08:12:12 -07:00
Vinnie Falco
dff2751c07
Use BOOST_ASSERT
2017-07-20 08:12:09 -07:00
Vinnie Falco
41a8342d3b
Better WebSocket decorator:
...
* Caller provided type can omit one or both overloads
* Omitted overloads yield default behavior
* Documentation no longer refers to a detail type
2017-07-20 08:12:09 -07:00
Evgeniy
42073a925a
Update build scripts for MSVC, MinGW
2017-07-20 08:12:09 -07:00
Vinnie Falco
0c0b2f2545
Add missing rebind to handler_alloc
2017-07-20 08:12:09 -07:00
Vinnie Falco
dfea8ff266
Set version to 1.0.0-b13
2017-07-20 08:12:09 -07:00
Vinnie Falco
a443be208c
Remove bin and bin64 directories:
...
These directories are removed, to make it easier for developers
to delete the entire directory contents when rebuilding CMake targets
after a configuration change.
2017-07-20 08:12:09 -07:00
Vinnie Falco
59cb3ee098
Use -p to print suites from unit test main
2017-07-20 08:12:09 -07:00
Vinnie Falco
28cabc5e28
Add BEAST_EXPECTS test failure macro:
...
New overloads of suite::expect take the file and line number
as individual parameters, cleaning up the file name output
by showing only the filename part (to not leak the full path,
which might contain sensitive information).
A new macro BEAST_EXPECTS allows an additional reason
string as well as reporting the file and line. Typical usage:
```
error_code ec;
...
if(! BEAST_EXPECTS(! ec, ec.message()))
return;
```
2017-07-20 08:12:09 -07:00
Vinnie Falco
f144619e7c
Fix unit test runner to output all case names:
...
Also fixes a bug where suite::log was incorrectly flushed.
2017-07-20 08:12:09 -07:00
Vinnie Falco
5f8f6c0b75
Update README, rename CHANGELOG
2017-07-20 08:12:09 -07:00