4 - Feature: Adds `start_perpetual` and `stop_perpetual` methods to asio transport
5 These may be used to replace manually managed `asio::io_service::work` objects
6 - Feature: Allow setting pong and handshake timeouts at runtime.
7 - Feature: Allows changing the listen backlog queue length.
8 - Feature: Split tcp init into pre and post init.
9 - Feature: Adds URI method to extract query string from URI. Thank you Banaan
11 - Feature: Adds a compile time switch to asio transport config to disable
12 certain multithreading features (some locks, asio strands)
13 - Feature: Adds the ability to pause reading on a connection. Paused connections
14 will not read more data from their socket, allowing TCP flow control to work
15 without blocking the main thread.
16 - Feature: Adds the ability to specify whether or not to use the `SO_REUSEADDR`
17 TCP socket option. The default for this value has been changed from `true` to
19 - Feature: Adds the ability to specify a maximum message size.
20 - Feature: Adds `close::status::get_string(...)` method to look up a human
21 readable string given a close code value.
22 - Feature: Adds `connection::read_all(...)` method to iostream transport as a
23 convenience method for reading all data into the connection buffer without the
24 end user needing to manually loop on `read_some`.
25 - Improvement: Open, close, and pong timeouts can be disabled entirely by
26 setting their duration to 0.
27 - Improvement: Numerous performance improvements. Including: tuned default
28 buffer sizes based on profiling, caching of handler binding for async
29 reads/writes, non-malloc allocators for read/write handlers, disabling of a
30 number of questionably useful range sanity checks in tight inner loops.
31 - Improvement: Cleaned up the handling of TLS related errors. TLS errors will
32 now be reported with more detail on the info channel rather than all being
33 `tls_short_read` or `pass_through`. In addition, many cases where a TLS short
34 read was in fact expected are no longer classified as errors. Expected TLS
35 short reads and quasi-expected socket shutdown related errors will no longer
36 be reported as unclean WebSocket shutdowns to the application. Information
37 about them will remain in the info error channel for debugging purposes.
38 - Improvement: `start_accept` and `listen` errors are now reported to the caller
39 either via an exception or an ec parameter.
40 - Improvement: Outgoing writes are now batched for improved message throughput
41 and reduced system call and TCP frame overhead.
42 - Bug: Fix some cases of calls to empty lib::function objects.
43 - Bug: Fix memory leak of connection objects due to cached handlers holding on to
44 reference counted pointers. #310 Thank you otaras for reporting.
45 - Bug: Fix issue with const endpoint accessors (such as `get_user_agent`) not
46 compiling due to non-const mutex use. #292 Thank you logofive for reporting.
47 - Bug: Fix handler allocation crash with multithreaded `io_service`.
48 - Bug: Fixes incorrect whitespace handling in header parsing. #301 Thank you
49 Wolfram Schroers for reporting
50 - Bug: Fix a crash when parsing empty HTTP headers. Thank you Thingol for
52 - Bug: Fix a crash following use of the `stop_listening` function. Thank you
53 Thingol for reporting.
54 - Bug: Fix use of variable names that shadow function parameters. The library
55 should compile cleanly with -Wshadow now. Thank you giszo for reporting. #318
56 - Bug: Fix an issue where `set_open_handshake_timeout` was ignored by server
57 code. Thank you Robin Rowe for reporting.
58 - Bug: Fix an issue where custom timeout values weren't being propagated from
59 endpoints to new connections.
60 - Bug: Fix a number of memory leaks related to server connection failures. #323
61 #333 #334 #335 Thank you droppy and aydany for reporting and patches.
63 - Compatibility: Fix compile time conflict with Visual Studio's MIN/MAX macros.
64 Thank you Robin Rowe for reporting.
65 - Documentation: Examples and test suite build system now defaults to clang on
68 0.3.0-alpha4 - 2013-10-11
69 - HTTP requests ending normally are no longer logged as errors. Thank you Banaan
71 - Eliminates spurious expired timers in certain error conditions. Thank you
72 Banaan for reporting. #295
73 - Consolidates all bundled library licenses into the COPYING file. #294
74 - Updates bundled sha1 library to one with a cleaner interface and more
75 straight-forward license. Thank you lotodore for reporting and Evgeni Golov
77 - Re-introduces strands to asio transport, allowing `io_service` thread pools to
78 be used (with some limitations).
79 - Removes endpoint code that kept track of a connection list that was never used
80 anywhere. Removes a lock and reduces connection creation/deletion complexity
81 from O(log n) to O(1) in the number of connections.
82 - A number of internal changes to transport APIs
83 - Deprecates iostream transport `readsome` in favor of `read_some` which is more
84 consistent with the naming of the rest of the library.
85 - Adds preliminary signaling to iostream transport of eof and fatal transport
87 - Updates transport code to use shared pointers rather than raw pointers to
88 prevent asio from retaining pointers to connection methods after the
89 connection goes out of scope. #293 Thank you otaras for reporting.
90 - Fixes an issue where custom headers couldn't be set for client connections
91 Thank you Jerry Win and Wolfram Schroers for reporting.
92 - Fixes a compile error on visual studio when using interrupts. Thank you Javier
93 Rey Neira for reporting this.
94 - Adds new 1012 and 1013 close codes per IANA registry
95 - Add `set_remote_endpoint` method to iostream transport.
96 - Add `set_secure` method to iostream transport.
97 - Fix typo in .gitattributes file. Thank you jstarasov for reporting this. #280
98 - Add missing locale include. Thank you Toninoso for reporting this. #281
99 - Refactors `asio_transport` endpoint and adds full documentation and exception
100 free varients of all methods.
101 - Removes `asio_transport` endpoint method cancel(). Use `stop_listen()` instead
102 - Wrap internal `io_service` `run_one()` method
103 - Suppress error when trying to shut down a connection that was already closed
105 0.3.0-alpha3 - 2013-07-16
106 - Minor refactor to bundled sha1 library
107 - HTTP header comparisons are now case insensitive. #220, #275
108 - Refactors URI to be exception free and not use regular expressions. This
109 eliminates the dependency on boost or C++11 regex libraries allowing native
110 C++11 usage on GCC 4.4 and higher and significantly reduces staticly built
112 - Updates handling of Server and User-Agent headers to better handle custom
113 settings and allow suppression of these headers for security purposes.
114 - Fix issue where pong timeout handler always fired. Thank you Steven Klassen
115 for reporting this bug.
116 - Add ping and pong endpoint wrapper methods
117 - Add `get_request()` pass through method to connection to allow calling methods
118 specific to the HTTP policy in use.
119 - Fix issue compile error with `WEBSOCKETPP_STRICT_MASKING` enabled and another
120 issue where `WEBSOCKETPP_STRICT_MASKING` was not applied to incoming messages.
121 Thank you Petter Norby for reporting and testing these bugs. #264
122 - Add additional macro guards for use with boost_config. Thank you breyed
123 for testing and code. #261
125 0.3.0-alpha2 - 2013-06-09
126 - Fix a regression that caused servers being sent two close frames in a row
127 to end a connection uncleanly. #259
128 - Fix a regression that caused spurious frames following a legitimate close
129 frames to erroneously trigger handlers. #258
130 - Change default HTTP response error code when no http_handler is defined from
131 500/Internal Server Error to 426/Upgrade Required
132 - Remove timezone from logger timestamp to work around issues with the Windows
133 implimentation of strftime. Thank you breyed for testing and code. #257
134 - Switch integer literals to char literals to improve VCPP compatibility.
135 Thank you breyed for testing and code. #257
136 - Add MSVCPP warning suppression for the bundled SHA1 library. Thank you breyed
137 for testing and code. #257
139 0.3.0-alpha1 - 2013-06-09