Commit Graph

1581 Commits

Author SHA1 Message Date
Vinnie Falco 3f50efa138 WebSocket Decorator is a socket option (API Change):
This changes the interface used to apply a decorator to the HTTP
request or response messages used to perform the WebSocket handshake
as follows:

* Add the `stream_base::decorator` option object

* Add `stream::set_option` overload to set the decorator from
  the option

* The decorator applies to all client and server handshakes
  performed on the stream after the option is set.

* Overloads of the following functions which accept a Decorator
  are deprecated:
  - accept, accept_ex
  - handshake, handshake_ex
  - async_accept, async_accept_ex
  - async_handshake, async_handshake_ex

Actions Required:

* Code which passes decorator to any `websocket::stream` member
  function should call `stream::set_option` instead with a newly
  constructed `stream_base::decorator` object containing the
  decorator. Alternatively, the macro `BOOST_BEAST_ALLOW_DEPRECATED`
  may be defined to 1.
2019-02-19 16:23:30 -08:00
Vinnie Falco 085fb66b26 websocket test coverage 2019-02-18 12:18:27 -08:00
Vinnie Falco e831e8b7ee Add detail::decorator 2019-02-18 12:18:27 -08:00
Vinnie Falco 79c777e776 Tidying and fixes 2019-02-18 12:18:27 -08:00
Vinnie Falco fc7b47fc5d Use suggested timeouts in Websocket examples 2019-02-18 12:18:27 -08:00
Vinnie Falco f21358186e Add websocket::stream timeouts 2019-02-18 12:18:27 -08:00
Vinnie Falco dfd08bf6ae Refactor websocket::stream operations 2019-02-18 12:18:27 -08:00
Vinnie Falco 6af6a8da99 Travis OSX uses c++11 2019-02-18 09:27:22 -08:00
Vinnie Falco 9f8cf7d599 Set version to 215 2019-02-16 15:09:38 -08:00
Vinnie Falco 5c01953076 Remove unused file 2019-02-16 15:09:35 -08:00
Vinnie Falco 00e8c381cd Examples use ssl_stream
fix #1455
2019-02-16 15:09:35 -08:00
Vinnie Falco 22dcb4a3cb example/cppcon2018 is removed:
* Replaced by websocket-chat-multi
2019-02-16 15:09:35 -08:00
Vinnie Falco ca1b620527 Use std::bind for control_callback 2019-02-16 15:09:34 -08:00
Vinnie Falco 2e62f25701 Use async_op_base::invoke 2019-02-16 15:09:34 -08:00
Vinnie Falco f41363c60c Add async_op_base::invoke 2019-02-16 15:09:33 -08:00
Vinnie Falco fdaf2ea7e1 Rename to async_op_base::invoke_now 2019-02-16 13:36:01 -08:00
Vinnie Falco a781285e2f Add experimental test/handler.hpp 2019-02-16 13:36:01 -08:00
Vinnie Falco 18447553ca Examples use bind_front_handler 2019-02-14 17:28:54 -08:00
Vinnie Falco 92add2afa6 bind_front_handler works with member functions 2019-02-14 16:16:04 -08:00
Vinnie Falco d410b429c0 Remove bind_back_handler 2019-02-14 16:11:14 -08:00
Vinnie Falco 5ed9f7712e basic_stream uses boost::shared_ptr 2019-02-14 12:54:32 -08:00
Vinnie Falco 65cbc158cf Tidy up example docs and some names
fix #1450
2019-02-14 07:53:38 -08:00
Vinnie Falco d43d9421a4 Set version to 214 2019-02-13 14:14:40 -08:00
Vinnie Falco ebc5246c47 Rewrite the echo-op example
fix #1450
2019-02-13 14:14:34 -08:00
Vinnie Falco 96b2944f70 Add detail::bind_continuation 2019-02-13 12:59:24 -08:00
Vinnie Falco c08ce90e2c Tidy up a warning 2019-02-13 12:16:22 -08:00
Vinnie Falco b6f215a00d handler binders use the associated allocator 2019-02-12 05:55:07 -08:00
Vinnie Falco 1a80dd4560 Set version to 213 2019-02-10 11:43:25 -08:00
Vinnie Falco 45d722874f Use tcp_stream, HTTP timeouts in advanced servers 2019-02-10 11:43:15 -08:00
Vinnie Falco 6ee1a88292 Use tcp_stream in WebSocket server examples 2019-02-10 11:42:01 -08:00
Vinnie Falco 920909673a Use tcp_stream in WebSocket client examples 2019-02-10 11:42:01 -08:00
Vinnie Falco cab2472ee9 Use timeouts in HTTP client examples 2019-02-10 11:42:01 -08:00
Vinnie Falco 5b97fbb966 Use timeouts in HTTP server examples 2019-02-10 11:42:01 -08:00
Vinnie Falco 9b14774ada basic_stream subsumes stranded_stream:
* All functionality of stranded_stream is folded into basic_stream
* tcp_stream is an alias for basic_stream with tcp
* The tests are expanded to produce full coverage
* Timeout implementation is simplified
2019-02-10 11:42:01 -08:00
Vinnie Falco 0ce8ebbefd Fix posix_file::close handling of EINTR:
fix #1445

These changes optimize for Linux at the possible
expense of non-conforming platforms like HP-UX.
2019-02-10 05:52:12 -08:00
Vinnie Falco 68ee0df2ce Set version to 212 2019-02-10 05:51:46 -08:00
Vinnie Falco 168f674b4a Improved websocket stream documentation
fix #1213
2019-02-10 05:51:42 -08:00
Vinnie Falco 44ed20aa2c buffers_front tests 2019-02-09 06:58:59 -08:00
Vinnie Falco b8aa6be7fd stranded_socket tests and tidy 2019-02-08 10:58:23 -08:00
Vinnie Falco f15bbf10b4 flat_stream tests and tidy 2019-02-08 10:57:58 -08:00
Vinnie Falco 98834967c3 dynamic_buffer_ref tests and tidy 2019-02-08 10:57:41 -08:00
Vinnie Falco 06efddd8b8 Set version to 211 2019-02-07 17:37:21 -08:00
Daniel Sewtz cd28598e5b Fixes to rfc7230:
fix #1435, fix #1438

* Example and test can be built on msvc v141 15.9.6
  using /std:c++17 and BOOST_BEAST_USE_STD_STRING_VIEW.

* changed string_view.to_string() to std:string(string_view),
  awaiting availability of Library Fundamentals TS here.

* Reactivated relevant tests to param_list. #ifdef 0 test
  exhibited same assertion failed error in debug mode.
  Now fixed in DEBUG on msvc v141 15.9.6 with
  BOOST_BEAST_USE_STD_STRING_VIEW and /std:c++17.

* Looked up http paramters (transfer-encoding, etc.)
  and changed tests as well as fixing comment to
  match specs.
2019-02-07 17:37:18 -08:00
Vinnie Falco 55d319a9d9 multi_buffer::clear preserves capacity 2019-02-07 17:37:18 -08:00
Vinnie Falco c3125e8358 flat_buffer::clear preserves capacity 2019-02-07 17:37:18 -08:00
Vinnie Falco 27a6f57200 Add flat_stream:
flat_stream, previously in _experimental, is now a public API.
2019-02-07 17:37:18 -08:00
Vinnie Falco 3896f9aa9c Add stranded_stream 2019-02-07 17:37:18 -08:00
Benjamin Buch cdc6e76ab7 Remove extra semicolon
fix #1436
2019-02-07 08:38:06 -08:00
Vinnie Falco 812a19706a Improvements to test::stream:
The behavior of the test stream when either
end is destroyed or closed is well-defined.
2019-02-06 21:21:25 -08:00
Vinnie Falco a142082cf2 Workaround for vs2015 2019-02-06 21:20:02 -08:00