Commit Graph

758 Commits

Author SHA1 Message Date
Vinnie Falco
54fe7cacf7 message::body is a member function (API Change):
fix #778

* The body data member is replaced with accessor
  member functions.

Actions Required:

* Call member function message::body instead of accessing
  the data member at call sites.
2017-09-12 17:12:12 -07:00
Vinnie Falco
0d4d239d05
Set version to 115 2017-09-10 16:11:10 -07:00
Vinnie Falco
c388a92227
Set version to 113 2017-09-09 06:49:43 -07:00
Howard Hinnant
4880cdd472 Remove field_range copy constructor
*  This presence of the user-declared copy constructor makes
   the compiler-provided copy assignment operator deprecated.
   This change allows the compiler to provide both copy members
   without deprecated behavior.
2017-09-09 06:49:39 -07:00
Vinnie Falco
0007afdaf2 Fix handler signature in async_read_header 2017-09-09 06:39:49 -07:00
Vinnie Falco
d6fce5a00f
Set version to 112 2017-09-03 21:44:08 -07:00
Vinnie Falco
49d9d47a0b HTTP reads and writes return bytes transferred (API Change):
* HTTP read and write operations now return the
  number of bytes transferred to or from the stream.

Actions Required:

* Modify HTTP read and/or write completion handlers to receive
  the extra std::size_t bytes_transferred parameter.
2017-09-03 20:37:28 -07:00
Vinnie Falco
c0e5f14702 WebSocket writes return the bytes transferred (API Change):
* Stream write operations now return the number of bytes
transferred from the caller's input buffers.

Actions Required:

* Modify websocket write completion handlers to receive
  the extra std::size_t bytes_transferred parameter.
2017-09-03 20:05:19 -07:00
Vinnie Falco
942bca0cc3
Set version to 111 2017-08-31 17:52:39 -07:00
Vinnie Falco
647b3d68e1 Suspended ops special members 2017-08-31 17:52:37 -07:00
Vinnie Falco
51a5a36118 Refactor stream operations and tests plus coverage 2017-08-31 17:52:36 -07:00
Vinnie Falco
9f089c2a33 Fix utf8 check split code point at buffer end 2017-08-31 17:52:36 -07:00
Vinnie Falco
c8a42bba0a
Set version to 110 2017-08-29 08:22:16 -07:00
Vinnie Falco
30b98674d5 Refactor websocket stream: fixes and tests 2017-08-28 22:16:22 -07:00
Vinnie Falco
1d5b3f488e Refactor websocket stream members 2017-08-26 20:12:21 -07:00
Vinnie Falco
4c335a64cf Refactor stream open state variable 2017-08-26 20:12:04 -07:00
Vinnie Falco
526ecc5246
Set version to 109 2017-08-26 07:15:31 -07:00
Vinnie Falco
53fa8a6589 websocket test fixes 2017-08-26 07:15:25 -07:00
Vinnie Falco
df7b068fa7 websocket read tests 2017-08-25 07:40:05 -07:00
Vinnie Falco
142b785119 split up websocket tests 2017-08-24 06:38:47 -07:00
Vinnie Falco
5ac51a1054 websocket write tests 2017-08-23 14:38:29 -07:00
Vinnie Falco
2697c26238 Fix websocket close_op resume state 2017-08-23 14:34:14 -07:00
Vinnie Falco
99822aebf5 websocket ping tests 2017-08-23 14:34:13 -07:00
Vinnie Falco
6809c18afa websocket handshake uses coroutine 2017-08-23 14:34:13 -07:00
Vinnie Falco
96eff81cea websocket close fixes and tests 2017-08-23 14:34:13 -07:00
Vinnie Falco
7e815435f6 websocket accept refactoring (API Change):
* stream overloads of accept which take both a message
  and a buffer sequence are removed.

Actions Required:

* Do not call websocket accept overloads which take
  both a message and a buffer sequence, as it is
  illegal per rfc6455.
2017-08-23 14:34:13 -07:00
Vinnie Falco
7a96dc4e11 Fix async_read_some handler signature 2017-08-23 14:34:13 -07:00
Vinnie Falco
359cbb1ce4
Set version to 108 2017-08-18 07:55:40 -07:00
Vinnie Falco
b397718fbd
Set version to 107 2017-08-16 18:27:06 -07:00
Vinnie Falco
e690528132 Rename frame and header buffer types
fix #736
2017-08-15 16:59:17 -07:00
Vinnie Falco
3d6a009a96 Fix utf8 check for compressed frames 2017-08-15 16:33:25 -07:00
Vinnie Falco
a435dde2a3 Fix done state for WebSocket reads 2017-08-15 12:49:02 -07:00
Vinnie Falco
aabd33a677
Set version to 106 2017-08-15 07:01:01 -07:00
Vinnie Falco
76feb4afd4 Fix for basic_parser::skip(true) and docs
fix #742
2017-08-15 07:00:56 -07:00
Vinnie Falco
f570593a01 Tidy up utf8_checker and tests 2017-08-14 15:41:35 -07:00
Vinnie Falco
66b657a85f Autobahn|Testsuite fixes 2017-08-14 15:41:31 -07:00
Vinnie Falco
5940002c96 Websocket close will automatically drain:
fix #642

This changes websocket::stream close and async_close to automatically
read and discard incoming message frames before shutting down the
connection. It is no longer necessary to manually drain the connection.
2017-08-14 15:41:11 -07:00
Vinnie Falco
fa087e19f1 Refactor read_op + fail_op 2017-08-14 15:40:13 -07:00
Vinnie Falco
3652137718 Refactor close_op 2017-08-14 15:30:31 -07:00
Vinnie Falco
470ef85982 Refactor read_op 2017-08-14 15:30:30 -07:00
Vinnie Falco
91fb1c4b53 Refactor fail_op 2017-08-14 15:30:30 -07:00
Vinnie Falco
a98e432a2a Refactor ping_op 2017-08-14 15:30:30 -07:00
Vinnie Falco
2b484c0b8b Refactor write_op 2017-08-14 15:30:30 -07:00
Vinnie Falco
0439114fd5 Remove obsolete write_op 2017-08-14 15:30:30 -07:00
Vinnie Falco
4218a3a972 Add flat_static_buffer::reset 2017-08-14 15:30:28 -07:00
Vinnie Falco
3fe6cef129 Dynamic buffer input areas are mutable 2017-08-14 15:30:13 -07:00
Vinnie Falco
d337339c02
Set version to 105 2017-08-10 18:32:24 -07:00
Vinnie Falco
126bea987c
Set version to 104 2017-08-09 18:50:09 -07:00
Vinnie Falco
6ef4afa765 Fix pausation::save 2017-08-09 18:50:04 -07:00
Vinnie Falco
d8a1eef7a3 Tidy up some test warnings 2017-08-09 17:23:41 -07:00
Vinnie Falco
8977237f8a Use #error in config.hpp 2017-08-09 16:34:18 -07:00
Vinnie Falco
17789ba02e Remove unused include 2017-08-09 14:43:21 -07:00
Vinnie Falco
d6aca02ef8
Set version to 103 2017-08-08 19:25:39 -07:00
Vinnie Falco
0175102151 Tidy up allocator usage 2017-08-08 11:11:44 -07:00
Vinnie Falco
cf8182794a Boost test matrix fixes 2017-08-08 11:11:31 -07:00
Vinnie Falco
1366302a29
Set version to 102 2017-08-08 06:22:37 -07:00
Vinnie Falco
ca0b59894b
Set version to 101 2017-08-07 20:53:18 -07:00
Vinnie Falco
dd71b0f94d Refactor all examples:
fix #575, fix #604, fix #608, fix #634, fix #712

All examples are rewritten:

* Using Best Practices
* Mostly self-contained
* New examples to complete the feature matrix
* The server-framework example is removed
2017-08-07 20:53:11 -07:00
Vinnie Falco
20a8f7d75b
Set version to 100 2017-08-04 19:02:21 -07:00
Vinnie Falco
5e6ee5445e websocket documentation 2017-08-04 19:02:13 -07:00
Vinnie Falco
60c8a560bf Add teardown_role for correct TIME_WAIT behavior (API Change):
* teardown_tag is replaced with teardown_role, a client/server
  flag used to determine whether the shutdown is performed
  before or after reading the EOF. This is in accordance with
  RFC6455 7.1.1:

  https://tools.ietf.org/html/rfc6455#section-7.1.1

Actions Required:

* Modify signatures of teardown and async_teardown to use
  teardown_role instead of teardown_tag

* Change calls to teardown and async_teardown to pass the
  correct role: client or server depending on context.
2017-08-04 19:02:13 -07:00
Vinnie Falco
de03a1a32d drain_buffer is removed (API Change):
* The drain_buffer dynamic buffer is no longer a public interface.

Actions Required:

* Replace code which uses drain_buffer. For websocket::stream,
  it is no longer necessary to manually drain the connection
  after closing.
2017-08-04 19:02:13 -07:00
Vinnie Falco
64327739f0 WebSocket close will automatically drain (API Change):
fix #642

* Calls to stream::close and stream::async_close will
  automatically perform the required read operations

Actions Required:

* Remove calling code which drains the connection after
  calling stream::close or stream::async_close
2017-08-04 19:02:13 -07:00
Vinnie Falco
dc6a08d10a Add variadic min/max 2017-08-04 19:02:13 -07:00
Vinnie Falco
028fda0237 Fix stream::read_size_hint calculation 2017-08-04 19:02:13 -07:00
Vinnie Falco
576edfaaed eof on accept returns error::closed 2017-08-04 19:02:13 -07:00
Vinnie Falco
56a9e6ba9a Call do_fail from read_some 2017-08-04 19:02:13 -07:00
Vinnie Falco
756de5d703 Refactor fail/clode code 2017-08-04 19:02:13 -07:00
Vinnie Falco
e9d01fe79f Remove obsolete frame tests 2017-08-04 19:02:12 -07:00
Vinnie Falco
6c0fef7e7e
Version 99 2017-08-03 04:22:35 -07:00
Vinnie Falco
e5e25f5c17 Use correct handler signature in fail_op
fix #716
2017-08-03 04:21:24 -07:00
Vinnie Falco
f50f439976
Set version to 98 2017-08-01 11:56:43 -07:00
Vinnie Falco
a7069f184e basic_fields::key_compare is noexcept
fix #704
2017-08-01 06:16:26 -07:00
Vinnie Falco
6081d6e4cc
Set version to 97 2017-07-31 19:50:51 -07:00
Vinnie Falco
817a452f96
Set version to 96 2017-07-31 19:02:49 -07:00
Vinnie Falco
e3c79edebd
Set version to 95 2017-07-31 12:37:36 -07:00
Vinnie Falco
c27fbf826d Tidy up static_buffer braced init 2017-07-31 09:07:21 -07:00
Vinnie Falco
e0f0dc5bca
Set version to 94 2017-07-30 12:10:08 -07:00
Vinnie Falco
9e29a52fcb
Set version to 93 2017-07-29 17:07:09 -07:00
Vinnie Falco
5c1c841333
Set version to 92 2017-07-29 12:45:33 -07:00
Vinnie Falco
ea35f6f770 Ignore Content-Length in some cases:
fix #692

The value of Content-Length is not checked for limits
when the semantics of an HTTP response indicate that
the message has no body. For example, when status is 101.
2017-07-29 12:44:28 -07:00
Vinnie Falco
c465ed5a69 Update repository links in source comments 2017-07-29 12:44:10 -07:00
Vinnie Falco
c57f9ba18e basic_fields::value_type is not copyable
fix #697
2017-07-29 03:51:22 -07:00
Vinnie Falco
1497b4efa4
Set version to 91 2017-07-29 00:26:15 -07:00
Vinnie Falco
e15448a83a control frame callbacks are non-const references:
fix #653

Actions Required:

* Modify calls to set the control frame callback, to
  pass non-const reference instances, and manage the
  lifetime of the instance.
2017-07-28 17:07:25 -07:00
Vinnie Falco
6ab9bd2780 Use fopen_s on Windows
fix #691
2017-07-28 17:07:25 -07:00
Vinnie Falco
f02353b7f5 Use Asio array optimization in static_buffer_base
fix #689
2017-07-28 17:07:24 -07:00
Vinnie Falco
df73241a60 constexpr in derived buffers
fix #657
2017-07-28 17:07:24 -07:00
Vinnie Falco
18a698f7f6 Use read buffer instead of buffered stream 2017-07-28 17:07:24 -07:00
Vinnie Falco
70c1d361fd Refactor accept, handshake ops 2017-07-28 17:07:23 -07:00
Vinnie Falco
07535d6289 Optimize buffered_read_stream
fix #651
2017-07-28 17:07:23 -07:00
Vinnie Falco
e87bac242b Tidy up websocket javadocs 2017-07-28 17:07:23 -07:00
Vinnie Falco
c367309122 Tidy up namespace qualifiers 2017-07-28 17:07:23 -07:00
Vinnie Falco
f2da16c9f6 Don't build pre-C++11 2017-07-28 17:07:22 -07:00
Vinnie Falco
7bcfd2ed26
Set version to 90 2017-07-28 16:29:08 -07:00
Vinnie Falco
0fb562a4d7 Fix typo in equal_range
fix #688
2017-07-27 21:18:04 -07:00
Vinnie Falco
cbb47a0ffd Fix websocket read of zero length message
fix #686
2017-07-27 19:09:15 -07:00
Vinnie Falco
c7b830f37f
Set version to 89 2017-07-27 10:14:27 -07:00
Vinnie Falco
a61578634b
Set version to 88 2017-07-26 18:45:22 -07:00
Vinnie Falco
ce82e6476d Fix uninitialized frame done 2017-07-26 18:45:06 -07:00
Vinnie Falco
c2d5829f0e
Set version to 87 2017-07-25 17:47:03 -07:00
Vinnie Falco
3cba28f308 variant fixes and tests 2017-07-25 15:58:07 -07:00
Vinnie Falco
9003cf5f0b
Set version to 86 2017-07-25 10:37:48 -07:00
Vinnie Falco
e56d9955de websocket read returns the number of bytes inserted (API Change):
* read and async_read now return the number of bytes inserted
into the caller's buffer.

Actions Required:

* Change the signature of completion handlers used with
  websocket::stream::async_read to void(error_code, std::size_t)
2017-07-25 08:50:58 -07:00
Vinnie Falco
5d65f81e5f Remove spurious declaration 2017-07-24 14:47:31 -07:00
Vinnie Falco
8578f3cf76 Update copyrights 2017-07-24 09:42:51 -07:00
Vinnie Falco
7317bd0de9 Use custom variant 2017-07-23 17:36:12 -07:00
Vinnie Falco
7139dd639a Boost prep 2017-07-23 17:34:13 -07:00