Commit Graph

1056 Commits

Author SHA1 Message Date
Vinnie Falco 4ffdce2dae Update .gitignore for VS2017 2017-05-04 18:58:34 -07:00
Vinnie Falco 403011fdbe Remove http::empty_body (API Change) 2017-05-04 18:58:33 -07:00
Vinnie Falco f47b66179e New HTTP interfaces (API Change):
fix #123
fix #154
fix #265

This completely replaces the HTTP parser used to read and
parse incoming messages. The new version is faster than
the old one, and written in fewer lines. A summary of
changes:

* parse and async_parse renamed to read and async_read

* basic_parser is optimized for linear buffers,
  use flat_streambuf for the best performance with these
  functions:

  - http::read
  - http::read_some
  - http::async_read
  - http::async_read_some

* The overloads of read() and async_read() which take
  just a header have been removed, since they would
  throw away important parse metadata.

* The derived class callbacks for basic_parser have
  been streamlined. All strings passed to callbacks
  are presented in their entirety, instead of being
  provided in pieces.

These changes allow use-cases that were previously
difficult or impossible, such as:

- Efficient relaying

- Late body type commitment

- Expect: 100-continue handling
2017-05-04 18:58:33 -07:00
Vinnie Falco f6835b8db4 Rename to BEAST_DOXYGEN
fix #316
2017-05-04 18:58:33 -07:00
Vinnie Falco 7e37723be0 Add flat_streambuf:
Objects of this type meet the requirements of DynamicBuffer
and offer an additional invariant: buffer sequences returned
by data() and prepare() are always of length one.
2017-05-04 18:58:33 -07:00
Brad Chase 5b68faa100 Doc XSL support for list and table markdown 2017-04-23 08:26:20 -07:00
Vinnie Falco 3de46de96c Make websocket::close_code a proper enum:
fix #311

This changes close_code to be a proper enumeration.
2017-04-23 08:26:17 -07:00
Vinnie Falco 0128743dda Tidy up MSVC CMake configuration 2017-04-23 08:25:57 -07:00
Vinnie Falco ccd188ea1c Add appveyor build script
Fix #75
2017-04-20 13:24:58 -07:00
Vinnie Falco 6d5547a32c Set version to 1.0.0-b34 2017-04-19 11:49:39 -07:00
Vinnie Falco 6fab138150 Fix and tidy up CMake build scripts:
This cleans up the Boost CMake configuration and
also fixes a bug in MSVC builds with mismatched
static versus dynamic runtime linkage.
2017-04-19 11:49:34 -07:00
Vinnie Falco ccefa54bf5 Set version to 1.0.0-b33 2017-04-14 19:30:33 -07:00
Vinnie Falco 32afe415c4 Set internal state correctly when writing frames:
fix #300

Correctly set wr_.cont when performing synchronous frame
writes, for the case where masking and autofragment are used.
2017-04-14 19:25:05 -07:00
Vinnie Falco fe3e20b645 Add write_frames unit test 2017-04-14 19:25:05 -07:00
Vinnie Falco 578dcd0a78 Add decorator unit test
fix #302
2017-04-14 19:24:57 -07:00
Vinnie Falco aaa3733bee Use fwrite return value in file_body 2017-04-12 18:36:59 -07:00
Vinnie Falco df661658ee Require Visual Studio 2015 Update 3 or later
fix #216
2017-04-12 18:36:59 -07:00
Vinnie Falco b8e5a21bfd Set version to 1.0.0-b32 2017-04-10 16:48:16 -07:00
Sergey Lyubimov ffb17589d0 Update CMake scripts for finding packages:
These changes require CMake version 3.7.2 or later.
2017-04-10 16:47:58 -07:00
Vinnie Falco b893749e29 Remove http Writer suspend and resume feature (API Change):
fix #154

The resume_context parameter passed to instances
of Writer during HTTP serialization is removed.
2017-04-10 15:54:29 -07:00
Vinnie Falco 27864fb3dd Add io_service completion invariants tests
fix #290
2017-03-31 10:39:11 -04:00
Vinnie Falco eba05a76e7 Set version to 1.0.0-b31 2017-03-21 15:52:01 -04:00
Vinnie Falco 484bcef9d7 Fix badge markdown in README.md 2017-03-21 15:50:35 -04:00
Florian Behrens 5663bea6cd Add missing dynabuf_readstream member
fix #277
2017-03-16 07:29:39 -04:00
Vinnie Falco 0d7a551b25 Tidy up build settings 2017-03-16 07:29:39 -04:00
Vinnie Falco 0fd4030738 Move the handler, don't copy it 2017-03-16 07:29:34 -04:00
Vinnie Falco 1b9a714833 Set version to 1.0.0-b30 2017-02-27 11:55:19 -05:00
Vinnie Falco faed9e57f2 Allow concurrent websocket async ping and writes:
fix #271

This modifies the websocket stream implementation's composed
operations to allow caller-initiated asynchronous pings and
frame/message writes to take place at the same time.
2017-02-27 10:50:32 -05:00
Vinnie Falco 31cda067fa Fix race when write suspends 2017-02-27 10:50:29 -05:00
Vinnie Falco 48dd38eb55 Fix race in close frames during reads 2017-02-27 10:45:05 -05:00
Vinnie Falco e2d1bb062b Fix race in pings during reads 2017-02-27 10:39:53 -05:00
Vinnie Falco 36143be195 Set version to 1.0.0-b29 2017-02-24 13:25:05 -05:00
Florian Behrens f0399b68c0 Fix doc link typo 2017-02-24 13:24:54 -05:00
Nik Bougalis 787b7c2158 Check ostream modifier correctly 2017-02-24 13:24:54 -05:00
Steve Brain 4fa0bf645b Fix Writer return value documentation 2017-02-24 13:24:49 -05:00
Vinnie Falco 6406da06b9 Document type-pun in buffer_cat 2017-02-24 13:24:30 -05:00
Vinnie Falco 66cdb378f2 Fix illegal HTTP characters accepted as hex zero 2017-02-24 13:24:30 -05:00
Vinnie Falco e64ca2fa33 Fix Body requirements doc 2017-02-22 18:15:48 -05:00
Vinnie Falco 6dfd9f9fe8 Fix compilation error in non-template class
fix #267
2017-02-22 18:15:48 -05:00
Vinnie Falco fa7fea8f02 Fix race in writes during reads:
fix #261

This fixes a rare condition when responding to a ping or
close frame where the wr_block_ stream variable is not
correctly set for a short window of time.
2017-02-22 18:15:43 -05:00
Vinnie Falco 9f10b11eff Set version to 1.0.0-b28 2017-02-07 19:59:14 -05:00
Vinnie Falco 195f974872 Fix HTTP split parse edge case:
fix #257

This fixes a problem when doing split parsing (header then body).
The problem arises when the first buffer passed to the header
parser contains exactly the full header and nothing more. The
symptom is that when parsing the body, the parse will erroneously
be considered complete.
2017-02-07 19:59:04 -05:00
Vinnie Falco 264fd41342 Restyle async result constructions 2017-02-07 19:59:03 -05:00
Vinnie Falco 572a0eb490 Split out and rename test stream classes 2017-02-07 19:59:03 -05:00
Vinnie Falco 95b6646167 Tidy up some WebSocket javadocs 2017-02-07 19:59:03 -05:00
Vinnie Falco f6938d3760 Set version to 1.0.0-b27 2017-02-07 15:20:34 -05:00
Vinnie Falco a6120cd8be Update copyright dates 2017-02-07 15:20:25 -05:00
wilsonianb c7bfe7df4a Add documentation building instructions 2017-02-07 15:18:42 -05:00
Vinnie Falco f6c91ce9f5 Tidy up tests and docs:
* Add handler_ptr test and increase coverage
* Add test for prepare_buffer
* Move is_call_possible tests to a .cpp file
* Tidy up docs and declarations
2017-02-06 11:34:29 -05:00
Vinnie Falco f03985f3e8 Move basic_streambuf to streambuf.hpp (API Change):
* Also change allocator element type to char
2017-02-06 11:34:29 -05:00