Commit Graph

40 Commits

Author SHA1 Message Date
Vinnie Falco df8d306909 Tidy up documentation:
fix #135

* Fix broken references
* Move doc debug headers to extras/
* Add rfc7230 utility classes to quick reference
2016-10-20 17:22:37 -04:00
Vinnie Falco 47105f8454 Tidy up basic_headers for documentation 2016-10-20 17:22:36 -04:00
Vinnie Falco ada1f60e3e Refine message class hierarchy:
Two new objects, request_headers and response_headers,
represent the portion of HTTP messages excluding the body.
2016-10-20 17:22:36 -04:00
Vinnie Falco cf43f516d2 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
2016-10-17 11:11:57 -04:00
Vinnie Falco 8a261ca923 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
2016-10-17 11:11:57 -04:00
Vinnie Falco 183055a74c Parser callbacks may not throw (API Change) 2016-10-17 11:11:56 -04:00
Vinnie Falco ebebe52612 Add basic_streambuf::alloc_size
fix #133
2016-10-17 11:11:56 -04:00
Vinnie Falco c9cd171c19 Fix basic_streambuf::capacity 2016-10-17 11:11:56 -04:00
Vinnie Falco 0eb0e485c3 Tidying:
fix #85

* Remove unnecessary boost/system includes
* Remove unused headers_type from write_preparation
* Use braced-init style construction
* handler_alloc doc update
2016-10-17 11:11:51 -04:00
Evgeniy c5c436d5a3 Change implicit_value to default_value 2016-10-17 11:11:33 -04:00
Vinnie Falco 206d0a9b65 Fix websocket failure tests 2016-10-14 16:13:59 -04:00
Vinnie Falco 4224a3a2db Relax ForwardIterator requirements in FieldSequence 2016-10-14 15:03:58 -04:00
Vinnie Falco 14d7f8d362 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.
2016-10-14 14:12:43 -04:00
Vinnie Falco d81234435f Add pause option to on_headers interface:
* on_headers returns enum body_what
* body_what::pause lets caller receive headers during the parse
2016-10-14 14:12:42 -04:00
Vinnie Falco c59bd53f48 Improve first line serialization 2016-10-14 14:12:42 -04:00
Vinnie Falco 78ff20b005 Constrain parser_v1 constructor 2016-10-14 14:12:42 -04:00
Vinnie Falco 2765a67594 Refine Parser concept:
* Parser is not HTTP-specific
* parse algorithms are in their own header
* Update documentation
2016-10-14 14:12:41 -04:00
Vinnie Falco c329d33c4b Fix on_headers called twice from basic_parser_v1 2016-10-14 14:08:58 -04:00
Vinnie Falco 90cec54524 Make auto_fragment a boolean option 2016-10-14 14:08:57 -04:00
Vinnie Falco 03642fb585 Rename to write_buffer_size 2016-10-14 14:08:57 -04:00
Vinnie Falco 0ca8964fe0 Frame processing routines are member functions 2016-10-14 14:08:57 -04:00
Vinnie Falco d99dfb38de Make value optional in param-list 2016-10-14 14:08:56 -04:00
Radoslaw Zarzynski c54762ae1a 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".
2016-10-08 01:30:10 -04:00
Vinnie Falco 60e637bd69 Tidy up error types:
* Restructure header material
* Clean up namespace type injections
* Remove extraneous 'success' constants
2016-10-08 01:30:10 -04:00
Vinnie Falco d54d597f76 Tidy up DynamicBuffer requirements 2016-10-08 01:30:10 -04:00
Vinnie Falco 38af0f73d8 Fix message_v1 constructor 2016-10-08 01:30:10 -04:00
Vinnie Falco 027c4e8812 Add Secure WebSocket example 2016-10-08 01:30:10 -04:00
Vinnie Falco 5baaa49aee Add HTTPS example 2016-10-08 01:30:10 -04:00
Vinnie Falco 076456bdcc rfc7230 section 3.3.2 compliance 2016-10-08 01:30:10 -04:00
Vinnie Falco b4a8342795 Update and tidy documentation 2016-09-29 13:03:36 -04:00
Vinnie Falco 4abb43edc0 Use BOOST_ASSERT 2016-09-29 13:03:35 -04:00
Vinnie Falco 8ee7a21a88 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
2016-09-29 13:03:34 -04:00
Evgeniy 38f0d950b0 Update build scripts for MSVC, MinGW 2016-09-29 13:03:34 -04:00
Vinnie Falco 4c7065a80a Add missing rebind to handler_alloc 2016-09-29 13:03:32 -04:00
Vinnie Falco 2f9a8440c2 Set version to 1.0.0-b13 2016-09-02 16:56:33 -04:00
Vinnie Falco e499743cdd 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.
2016-09-02 10:01:32 -04:00
Vinnie Falco 411b2534ed Use -p to print suites from unit test main 2016-08-29 15:07:15 -04:00
Vinnie Falco 253f138aff 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;
    ```
2016-08-29 13:46:31 -04:00
Vinnie Falco dadbab4c0f Fix unit test runner to output all case names:
Also fixes a bug where suite::log was incorrectly flushed.
2016-08-29 11:48:45 -04:00
Vinnie Falco aedfaab93d Update README, rename CHANGELOG 2016-08-29 10:29:07 -04:00