Commit Graph
251 Commits
Author SHA1 Message Date
Vinnie Falco 71db14bad4 Tidy up build settings 2017-07-20 08:12:15 -07:00
Vinnie Falco 9f0dc10928 Move the handler, don't copy it 2017-07-20 08:12:15 -07:00
Vinnie Falco 74982213f9 Set version to 1.0.0-b30 2017-07-20 08:12:15 -07:00
Vinnie Falco 0ec9e8c4af 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-07-20 08:12:15 -07:00
Vinnie Falco a22e7056d5 Fix race when write suspends 2017-07-20 08:12:15 -07:00
Vinnie Falco 9554bd105d Fix race in close frames during reads 2017-07-20 08:12:15 -07:00
Vinnie Falco b9b1b53fda Fix race in pings during reads 2017-07-20 08:12:15 -07:00
Vinnie Falco 41c09a45ea Set version to 1.0.0-b29 2017-07-20 08:12:15 -07:00
Florian Behrens 8a1c7545e4 Fix doc link typo 2017-07-20 08:12:15 -07:00
Nik Bougalis 69f95c870b Check ostream modifier correctly 2017-07-20 08:12:15 -07:00
Steve Brain c82cc218e1 Fix Writer return value documentation 2017-07-20 08:12:15 -07:00
Vinnie Falco 8fe07212f1 Document type-pun in buffer_cat 2017-07-20 08:12:15 -07:00
Vinnie Falco e224d64949 Fix illegal HTTP characters accepted as hex zero 2017-07-20 08:12:15 -07:00
Vinnie Falco f3a87a745e Fix Body requirements doc 2017-07-20 08:12:15 -07:00
Vinnie Falco 5e7780bbd9 Fix compilation error in non-template class
fix #267
2017-07-20 08:12:15 -07:00
Vinnie Falco d735aa949e 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-07-20 08:12:15 -07:00
Vinnie Falco 4c0f7d9286 Set version to 1.0.0-b28 2017-07-20 08:12:15 -07:00
Vinnie Falco 2b799b6371 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-07-20 08:12:15 -07:00
Vinnie Falco dbfb7718fc Restyle async result constructions 2017-07-20 08:12:15 -07:00
Vinnie Falco 1f52f4a791 Split out and rename test stream classes 2017-07-20 08:12:15 -07:00
Vinnie Falco 5bbbb1fb30 Tidy up some WebSocket javadocs 2017-07-20 08:12:14 -07:00
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