1467 Commits
Author SHA1 Message Date
Vinnie Falco abdd89fde8 Initialize local variable in basic_parser 2017-07-20 08:15:30 -07:00
Vinnie Falco 8e6fb759dd Documentation tidy 2017-07-20 08:15:29 -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 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
Vinnie Falco c94821384d Set version to 72 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 b518c487ed Set version to 71 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 120c38948e Fix spurious on_chunk invocation 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
Vinnie Falco 431cfe8288 Set version to 70 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 d45682cfcd Set version to 69 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 b9597e21a4 Set version to 68 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 90b51c5f79 Small speed up in fields comparisons 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 2b2e99d69b Set version to 67 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 2daf3bf35b Set version to 66 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 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 90a88a9361 Set version to 65 2017-07-20 08:15:28 -07:00
Vinnie Falco 8f4e7fd0a0 Fix unused variable 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