Commit Graph

1930 Commits

Author SHA1 Message Date
Vinnie Falco
a983bb4fe7 Set version to 1.0.0-b27 2017-07-20 08:12:14 -07:00
Vinnie Falco
c468158a09 Update copyright dates 2017-07-20 08:12:14 -07:00
wilsonianb
04a0c9d91d Add documentation building instructions 2017-07-20 08:12:14 -07:00
Vinnie Falco
51aa614a10 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-07-20 08:12:14 -07:00
Vinnie Falco
7ef72b6ebc Move basic_streambuf to streambuf.hpp (API Change):
* Also change allocator element type to char
2017-07-20 08:12:14 -07:00
Vinnie Falco
765cb22b48 Invoke callback on pings and pongs (API Change):
fix #248

This additionally invokes the pong callback for received pings, allowing
callers to more efficiently detect when a connection is still lively:

* pong_callback renamed to ping_callback
* Callback signature has an extra `bool` to indicate if the received
  control frame is a ping or pong.
2017-07-20 08:12:14 -07:00
Vinnie Falco
a5a6563fe2 Set version to 1.0.0-b26 2017-07-20 08:12:14 -07:00
Vinnie Falco
615e80dacd Tidy up warnings and tests:
* Enable WebSocket frame tests
* Remove read_message_max warning
* Remove permessage-deflate check offer warning
2017-07-20 08:12:14 -07:00
Vinnie Falco
dc5b5b818c Set version to 1.0.0-b25 2017-07-20 08:12:14 -07:00
Vinnie Falco
269ca3610a Update README.md for CppCast 2017 2017-07-20 08:12:14 -07:00
Vinnie Falco
e79f923c03 Fix deflate setup bug 2017-07-20 08:12:14 -07:00
Vinnie Falco
812271a782 WebSocket server examples and test tidying:
fix #238, fix #165

* Tidy up WebSocket echo servers
* Add WebSocket echo servers to examples
2017-07-20 08:12:14 -07:00
Vinnie Falco
47068de6ce Remove unnecessary include
fix #242
2017-07-20 08:12:14 -07:00
Vinnie Falco
8ea120f13f Fix 32-bit arm7 warnings
fix #232
2017-07-20 08:12:14 -07:00
Vinnie Falco
d7e9a7ca3c Better handler_ptr (API Change):
fix #242

* Add public constructors
* Add handler_ptr::empty()
* Add handler_ptr::element_type
* Remove make_handler_ptr free function
* Compiler error if element_type is an array type
* handler_ptr::get() returns nullptr if no object is owned
2017-07-20 08:12:14 -07:00
Vinnie Falco
e81a2864ab Fixes for websocket echo server:
* Decorator members are const
* Enable permessage-deflate extension
2017-07-20 08:12:14 -07:00
Vinnie Falco
bf7864cfc6 Set version to 1.0.0-b24 2017-07-20 08:12:14 -07:00
Vinnie Falco
911617c43f Add permessage-deflate WebSocket extension:
This implements the permessage-deflate WebSocket
extension as described in HyBi Working Group
draft-ietf-hybi-permessage-compression-28:
https://tools.ietf.org/html/draft-ietf-hybi-permessage-compression-28

This extension allows messages to be compressed using
the raw "deflate" algorithm described in RFC 1951,
"DEFLATE Compressed Data Format Specification version 1.3":
https://www.ietf.org/rfc/rfc1951.txt
2017-07-20 08:12:14 -07:00
Vinnie Falco
99706347cd Make decorator copyable 2017-07-20 08:12:14 -07:00
Vinnie Falco
c594bbac3f Add optional yield_to arguments 2017-07-20 08:12:14 -07:00
Edward Hennis
6840f5840f Simplify Travis package install specification 2017-07-20 08:12:14 -07:00
Miguel Portilla
896b462c1f bjam use clang on MACOSX 2017-07-20 08:12:14 -07:00
Edward Hennis
1cd8b8c6b4 Set version to 1.0.0-b23 2017-07-20 08:12:14 -07:00
Edward Hennis
c4b3453e90 Travis CI improvements:
* Update boost package URL
* Retry Travis build script
* Respect Travis's $NUM_PROCESSORS limit
* Disable sudo
* Disable autobahn tests
* Show output from the wsecho server during autobahn
2017-07-20 08:12:14 -07:00
Vinnie Falco
133d926e2f Fix message constructor and special members
fix #196
2017-07-20 08:12:14 -07:00
Vinnie Falco
d24190cfdf Add copy special members 2017-07-20 08:12:14 -07:00
Vinnie Falco
020a254b1b Better logging in async echo server 2017-07-20 08:12:14 -07:00
Vinnie Falco
cfde28c3c3 Add file and line number to thrown exceptions 2017-07-20 08:12:14 -07:00
Vinnie Falco
e66327ed4d Tune websocket echo server for performance 2017-07-20 08:12:14 -07:00
Vinnie Falco
31b8c42111 Set version to 1.0.0-b22 2017-07-20 08:12:14 -07:00
Denis Andrejew
48c57b0538 Fix code sample in websocket.qbk 2017-07-20 08:12:14 -07:00
Denis Andrejew
3d1488a4e5 Fix typos in design.qbk 2017-07-20 08:12:14 -07:00
Vinnie Falco
93e58f7dab Update documentation examples
fix #222
2017-07-20 08:12:14 -07:00
Vinnie Falco
606ad187ba Disable Boost.Coroutine deprecation warning 2017-07-20 08:12:14 -07:00
Vinnie Falco
64e0bb15ad Fix websocket stream read documentation 2017-07-20 08:12:14 -07:00
Vinnie Falco
c6dae58364 Update README.md example programs
fix #219
2017-07-20 08:12:14 -07:00
Vinnie Falco
ffe2e8e02b Avoid copies in handler_alloc 2017-07-20 08:12:14 -07:00
Vinnie Falco
4ab2b5e5e7 Add handler helpers 2017-07-20 08:12:14 -07:00
Vinnie Falco
01e1fa2dc9 Implement asio dealloc-before-invoke guarantee:
fix #215

This change guarantees that temporary memory allocated
through the asio hooks by the Beast implementation is
deallocated before invoking the final handler when performing
composed operations.

The change is accomplished by replacing std::shared_ptr with
a thread-safe custom container handler_ptr to manage composed
operation state. The container tracks other instances which
manage the same object and resets them in a safe way before
invoking the final handler.

handler_ptr is provided as a public interface so that users of
this library can utilize the same idiom to write their own
composed operations.
2017-07-20 08:12:14 -07:00
Vinnie Falco
1a26484eca Add missing include 2017-07-20 08:12:14 -07:00
Vinnie Falco
f70ac4cb86 Fix broken Intellisense (MSVC)
Fix #213
2017-07-20 08:12:14 -07:00
Vinnie Falco
a5d063d5b9 Set version to 1.0.0-b21 2017-07-20 08:12:14 -07:00
Vinnie Falco
f8590a31a9 Remove extraneous includes
fix #207
2017-07-20 08:12:14 -07:00
Vinnie Falco
51ee01ed95 Set version to 1.0.0-b20 2017-07-20 08:12:14 -07:00
Miguel Portilla
c49bee78db Increase utf8 checker code coverage 2017-07-20 08:12:14 -07:00
Vinnie Falco
5089cf59ee Add zlib module:
The zlib module is a port of ZLib's raw deflate
algorithm to header-only C++11.
2017-07-20 08:12:14 -07:00
Vinnie Falco
e3848e7281 Refactor HTTP identifier names (API Change):
fix #171

Several names and  HTTP identifiers are renamed to be
more consistent, self-explanatory, and concise:

* "Fields" is a collection of HTTP header fields (rfc7230 section 3.2)
* "Header" is the Start Line plus Fields. Another way to look at it is,
  the HTTP message minus the body.
* `basic_fields` replaces `basic_headers`
* `fields` replaces `headers`
* `Fields` replaces `Headers` in template parameter lists
* `header` replaces `message_headers`
* `header::fields` replaces `message_headers::fields`

The changes are cosmetic and do not affect run-time behavior.
2017-07-20 08:12:13 -07:00
Vinnie Falco
879262abb1 Set version to 1.0.0-b19 2017-07-20 08:12:13 -07:00
Vinnie Falco
77bdb43843 Tidy up internal name 2017-07-20 08:12:13 -07:00
Vinnie Falco
be67224390 Better buffer_cat:
buffer_cat now determines if all of the buffer sequences in
the list of passed buffer sequences each have value types which
are convertible to mutable_buffer. The returned concatenated
sequence will be a MutableBufferSequence if all the passed
buffer sequences meet the requirements of MutableBufferSequence,
else the returned concatenated sequence will be a ConstBufferSequence.
2017-07-20 08:12:13 -07:00