modify build setup
[c11concurrency-benchmarks.git] / gdax-orderbook-hpp / demo / dependencies / websocketpp-0.7.0 / changelog.md
1 HEAD
2
3 0.7.0 - 2016-02-22
4 - MINOR BREAKING SOCKET POLICY CHANGE: Asio transport socket policy method 
5   `cancel_socket` will now return `lib::asio::error_code` instead of `void`.
6   Custom Asio transport socket policies will need to be updated accordingly.
7   This does not affect anyone using the bundled socket policies.
8 - Feature: Basic support for the permessage-deflate extension. #344
9 - Feature: Allow accessing the local endpoint when using the Asio transport.
10   This allows inspection of the address and port in cases where they are chosen
11   by the operating system rather than the user. Thank you Andreas Weis and 
12   Muzahid Hussain for reporting and related code. #458
13 - Feature: Add support for subprotocols in Hybi00. Thank you Lukas Obermann
14   for reporting and a patch. #518
15 - Improvement: Better automatic std::chrono feature detection for Visual Studio
16 - Improvement: Major refactoring to bundled CMake build system. CMake can now be
17   used to build all of the examples and the test suite. Thank you Thijs Wenker
18   for a significant portion of this code. #378, #435, #449
19 - Improvement: In build environments where `lib::error_code` and 
20   `lib::asio::error_code` match (such as using `boost::asio` with 
21   `boost::system_error` or standalone asio with `std::system_error`, transport
22   errors are passed through natively rather than being reported as a translated 
23   `pass_through` error type.
24 - Improvement: Add a `get_transport_error` method to Asio transport connections
25   to allow retrieving a machine readable native transport error.
26 - Improvement: Add `connection::get_response`, `connection::get_response_code`,
27   and `connection::get_response_msg` methods to allow accessing additional
28   information about the HTTP responses that WebSocket++ sends. #465 Thank you
29   Flow86 for reporting.
30 - Improvement: Removes use of empty strings ("") in favor of `string::clear()`
31   and `string::empty()`. This avoids generating unnecessary temporary objects.
32   #468 Thank you Vladislav Yaroslavlev for reporting and a patch.
33 - Documentation: Adds an example demonstrating the use of external `io_service`
34 - Documentation: Adds a simple echo_client example.
35 - Documentation: Begins migration of the web based user manual into Doxygen.
36 - Bug: Fix memory leak when init_asio produces an error. #454 Thank you Mark 
37   Grimes for reporting and fixing.
38 - Bug: Fix crash when processing a specially crafted HTTP header. Thank you Eli 
39   Fidler for reporting, test cases, and a patch. #456
40 - Bug: Fix an issue where standalone Asio builds that use TLS would not compile
41   due to lingering boost code. #448 Thank you mjsp for reporting
42 - Bug: Fix an issue where canceling a socket could throw an exception on some
43   older Windows XP platforms. It now prints an appropriate set of log messages
44   instead. Thank you Thijs Wenker for reporting and researching solutions. #460
45 - Bug: Fix an issue where deferred HTTP connections that start sending a very 
46   long response before their HTTP handler ends would result in a second set of
47   HTTP headers being injected into the output. Thank you Kevin Smith for
48   reporting and providing test case details. #443
49 - Bug: Fix an issue where the wrong type of strand was being created. Thank you 
50   Bastien Brunnenstein for reporting and a patch. #462
51 - Bug: Fix an issue where TLS includes were broken for Asio Standalone builds.
52   Thank you giachi and Bastien Brunnenstein for reporting. #491
53 - Bug: Remove the use of cached read and write handlers in the Asio transport.
54   This feature caused memory leaks when the io_service the connection was
55   running on was abruptly stopped. There isn't a clean and safe way of using
56   this optimization without global state and the associated locks. The locks
57   perform worse. Thank you Xavier Gibert for reporting, test cases, and code.
58   Fixes #490.
59 - Bug: Fix a heap buffer overflow when checking very short URIs. Thank you 
60   Xavier Gibert for reporting and a patch #524
61 - Compatibility: Fixes a number of build & config issues on Visual Studio 2015
62 - Compatibility: Removes non-standards compliant masking behavior. #395, #469
63 - Compatibility: Replace deprecated use of auto_ptr on systems where unique_ptr
64   is available.
65
66 0.6.0 - 2015-06-02
67 - MINOR BREAKING TRANSPORT POLICY CHANGE: Custom transport policies will now be
68   required to include a new method `void set_uri(uri_ptr u)`. An implementation
69   is not required. The stub transport policy includes an example stub method
70   that can be added to any existing custom transport policy to fulfill this
71   requirement. This does not affect anyone using the bundled transports or
72   configs.
73 - MINOR BREAKING SOCKET POLICY CHANGE: Custom asio transport socket policies 
74   will now be required to include a new method `void set_uri(uri_ptr u)`. Like
75   with the transport layer, an implementation is not required. This does not 
76   affect anyone using the bundled socket policies.
77 - MINOR BREAKING DEPENDENCY CHANGE: When using Boost versions greater than or 
78   equal to 1.49 in C++03 mode, `libboost-chrono` is needed now instead of 
79   `libboost-date_time`. Users with C++11 compilers or using Boost versions 1.48
80   and earlier are not affected. Note: This change affects the bundled unit test
81   suite.
82 - Feature: WebSocket++ Asio transport policy can now be used with the standalone
83   version of Asio (1.8.0+) when a C++11 compiler and standard library are 
84   present. This means that it is possible now to use WebSocket++'s Asio
85   transport entirely without Boost. Thank you Robert Seiler for proof of concept
86   code that was used as a guide for this implementation. Fixes #324 
87 - Feature: Adds a vectored/scatter-gather write handler to the iostream
88   transport.
89 - Feature: Adds the ability to defer sending an HTTP response until sometime
90   after the `http_handler` is run. This allows processing of long running http
91   handlers to defer their response until it is ready without blocking the
92   network thread. references #425
93 - Improvement: `echo_server_tls` has been update to demonstrate how to configure
94   it for Mozilla's recommended intermediate and modern TLS security profiles.
95 - Improvement: `endpoint::set_timer` now uses a steady clock provided by 
96   `boost::chrono` or `std::chrono` where available instead of the non-monotonic
97   system clock. Thank you breyed for reporting. fixes #241
98 - Improvement: Outgoing TLS connections to servers using the SNI extension to
99   choose a certificate will now work. Thank you moozzyk for reporting. 
100   Fixes #400
101 - Improvement: Removes an unnecessary mutex lock in `get_con_from_hdl`.
102 - Cleanup: Asio transport policy has been refactored to remove many Boost
103   dependencies. On C++03 compilers the `boost::noncopyable` dependency has been
104   removed and the `boost::date_time` dependency has been replaced with the newer
105   `boost::chrono` when possible. On C++11 compilers the `boost::aligned_storage`
106   and `boost::date_time` dependencies are gone, replaced with equivalent C++11
107   standard library features.
108 - Bug: Fixes a potential dangling pointer and inconsistent error message
109   handling in `websocketpp::exception`. #432 Thank you Tom Swirly for the fix.
110
111 0.5.1 - 2015-02-27
112 - Bug: Fixes an issue where some frame data was counted against the max header
113   size limit, resulting in connections that included a lot of frame data
114   immediately after the opening handshake to fail.
115 - Bug: Fix a typo in the name of the set method for `max_http_body_size`. #406
116   Thank you jplatte for reporting.
117
118 0.5.0 - 2015-01-22
119 - BREAKING UTILITY CHANGE: Deprecated methods `http::parser::parse_headers`,
120   `http::response::parse_complete`, and `http::request::parse_complete` have
121   been removed.
122 - Security: Disabled SSLv3 in example servers.
123 - Feature: Adds basic support for accessing HTTP request bodies in the http
124   handler. #181
125 - Feature: Adds the ability to register a shutdown handler when using the
126   iostream transport. This provides a clean interface for triggering the shut
127   down of external sockets and other cleanup without hooking in to higher level
128   WebSocket handlers.
129 - Feature: Adds the ability to register a write handler when using the iostream
130   transport. This handler can be used to handle transport output in place of
131   registering an ostream to write to.
132 - Feature: Adds a new logging policy that outputs to syslog. #386 Thank you Tom
133   Hughes for submitting the initial version of this policy.
134 - Improvement: Message payload logging now prints text for text messages rather
135   than binary.
136 - Improvement: Overhaul of handshake state machine. Should make it impossible
137   for exceptions to bubble out of transport methods like `io_service::run`.
138 - Improvement: Overhaul of handshake error reporting. Fail handler error codes
139   will be more detailed and precise. Adds new [fail] and [http] logging channels
140   that log failed websocket connections and successful HTTP connections
141   respectively. A new aggregate channel package, `alevel::access_core`, allows
142   enabling connect, disconnect, fail, and http together. Successful HTTP
143   connections will no longer trigger a fail handler.
144 - Improvement: Ability to terminate connection during an http handler to cleanly
145   suppress the default outgoing HTTP response.
146 - Documentation: Add Sending & Receiving Messages step to chapter one of the
147   `utility_client` tutorial. Update `utility_client` example to match.
148 - Cleanup: Removes unused files & STL includes. Adds required STL includes.
149   Normalizes include order.
150 - Bug: Fixes a fatal state error when a handshake response is completed
151   immediately after that handshake times out. #389
152 - Bug: MinGW fixes; C++11 feature detection, localtime use. #393 Thank you
153   Schebb for reporting, code, and testing.
154 - Bug: Fixes an issue where `websocketpp::exception::what()` could return an out
155   of scope pointer. #397 Thank you fabioang for reporting.
156 - Bug: Fixes an issue where endpoints were not reset properly after a call to
157   `endpoint::listen` failed. #390 Thank you wyyqyl for reporting.
158
159 0.4.0 - 2014-11-04
160 - BREAKING API CHANGE: All WebSocket++ methods now throw an exception of type
161   `websocketpp::exception` which derives from `std::exception`. This normalizes
162   all exception types under the standard exception hierarchy and allows
163   WebSocket++ exceptions to be caught in the same statement as others. The error
164   code that was previously thrown is wrapped in the exception object and can be
165   accessed via the `websocketpp::exception::code()` method.
166 - BREAKING API CHANGE: Custom logging policies have some new required
167   constructors that take generic config settings rather than pointers to
168   std::ostreams. This allows writing logging policies that do not involve the
169   use of std::ostream. This does not affect anyone using the built in logging
170   policies.
171 - BREAKING UTILITY CHANGE: `websocketpp::lib::net::htonll` and
172   `websocketpp::lib::net::ntohll` have been prefixed with an underscore to avoid
173   conflicts with similarly named macros in some operating systems. If you are
174   using the WebSocket++ provided 64 bit host/network byte order functions you
175   will need to switch to the prefixed versions.
176 - BREAKING UTILITY CHANGE: The signature of `base64_encode` has changed from
177   `websocketpp::base64_encode(unsigned char const *, unsigned int)` to
178   `websocketpp::base64_encode(unsigned char const *, size_t)`.
179 - BREAKING UTILITY CHANGE: The signature of `sha1::calc` has changed from
180   `websocketpp::sha1::calc(void const *, int, unsigned char *)` to
181   `websocketpp::sha1::calc(void const *, size_t, unsigned char *)`
182 - Feature: Adds incomplete `minimal_server` and `minimal_client` configs that
183   can be used to build custom configs without pulling in the dependencies of
184   `core` or `core_client`. These configs will offer a stable base config to
185   future-proof custom configs.
186 - Improvement: Core library no longer has std::iostream as a dependency.
187   std::iostream is still required for the optional iostream logging policy and
188   iostream transport.
189 - Bug: C++11 Chrono support was being incorrectly detected by the `boost_config`
190   header. Thank you Max Dmitrichenko for reporting and a patch.
191 - Bug: use of `std::put_time` is now guarded by a unique flag rather than a
192   chrono library flag. Thank you Max Dmitrichenko for reporting.
193 - Bug: Fixes non-thread safe use of std::localtime. #347 #383
194 - Compatibility: Adjust usage of std::min to be more compatible with systems
195   that define a min(...) macro.
196 - Compatibility: Removes unused parameters from all library, test, and example
197   code. This assists with those developing with -Werror and -Wunused-parameter
198   #376
199 - Compatibility: Renames ntohll and htonll methods to avoid conflicts with
200   platform specific macros. #358 #381, #382 Thank you logotype, unphased,
201   svendjo
202 - Cleanup: Removes unused functions, fixes variable shadow warnings, normalizes
203   all whitespace in library, examples, and tests to 4 spaces. #376
204
205 0.3.0 - 2014-08-10
206 - Feature: Adds `start_perpetual` and `stop_perpetual` methods to asio transport
207   These may be used to replace manually managed `asio::io_service::work` objects
208 - Feature: Allow setting pong and handshake timeouts at runtime.
209 - Feature: Allows changing the listen backlog queue length.
210 - Feature: Split tcp init into pre and post init.
211 - Feature: Adds URI method to extract query string from URI. Thank you Banaan
212   for code. #298
213 - Feature: Adds a compile time switch to asio transport config to disable
214   certain multithreading features (some locks, asio strands)
215 - Feature: Adds the ability to pause reading on a connection. Paused connections
216   will not read more data from their socket, allowing TCP flow control to work
217   without blocking the main thread.
218 - Feature: Adds the ability to specify whether or not to use the `SO_REUSEADDR`
219   TCP socket option. The default for this value has been changed from `true` to
220   `false`.
221 - Feature: Adds the ability to specify a maximum message size.
222 - Feature: Adds `close::status::get_string(...)` method to look up a human
223   readable string given a close code value.
224 - Feature: Adds `connection::read_all(...)` method to iostream transport as a
225   convenience method for reading all data into the connection buffer without the
226   end user needing to manually loop on `read_some`.
227 - Improvement: Open, close, and pong timeouts can be disabled entirely by
228   setting their duration to 0.
229 - Improvement: Numerous performance improvements. Including: tuned default
230   buffer sizes based on profiling, caching of handler binding for async
231   reads/writes, non-malloc allocators for read/write handlers, disabling of a
232   number of questionably useful range sanity checks in tight inner loops.
233 - Improvement: Cleaned up the handling of TLS related errors. TLS errors will
234   now be reported with more detail on the info channel rather than all being
235   `tls_short_read` or `pass_through`. In addition, many cases where a TLS short
236   read was in fact expected are no longer classified as errors. Expected TLS
237   short reads and quasi-expected socket shutdown related errors will no longer
238   be reported as unclean WebSocket shutdowns to the application. Information
239   about them will remain in the info error channel for debugging purposes.
240 - Improvement: `start_accept` and `listen` errors are now reported to the caller
241   either via an exception or an ec parameter.
242 - Improvement: Outgoing writes are now batched for improved message throughput
243   and reduced system call and TCP frame overhead.
244 - Bug: Fix some cases of calls to empty lib::function objects.
245 - Bug: Fix memory leak of connection objects due to cached handlers holding on to
246   reference counted pointers. #310 Thank you otaras for reporting.
247 - Bug: Fix issue with const endpoint accessors (such as `get_user_agent`) not
248   compiling due to non-const mutex use. #292 Thank you logofive for reporting.
249 - Bug: Fix handler allocation crash with multithreaded `io_service`.
250 - Bug: Fixes incorrect whitespace handling in header parsing. #301 Thank you
251   Wolfram Schroers for reporting
252 - Bug: Fix a crash when parsing empty HTTP headers. Thank you Thingol for
253   reporting.
254 - Bug: Fix a crash following use of the `stop_listening` function. Thank you
255   Thingol for reporting.
256 - Bug: Fix use of variable names that shadow function parameters. The library
257   should compile cleanly with -Wshadow now. Thank you giszo for reporting. #318
258 - Bug: Fix an issue where `set_open_handshake_timeout` was ignored by server
259   code. Thank you Robin Rowe for reporting.
260 - Bug: Fix an issue where custom timeout values weren't being propagated from
261   endpoints to new connections.
262 - Bug: Fix a number of memory leaks related to server connection failures. #323
263   #333 #334 #335 Thank you droppy and aydany for reporting and patches.
264   reporting.
265 - Compatibility: Fix compile time conflict with Visual Studio's MIN/MAX macros.
266   Thank you Robin Rowe for reporting.
267 - Documentation: Examples and test suite build system now defaults to clang on
268   OS X
269
270 0.3.0-alpha4 - 2013-10-11
271 - HTTP requests ending normally are no longer logged as errors. Thank you Banaan
272   for reporting. #294
273 - Eliminates spurious expired timers in certain error conditions. Thank you
274   Banaan for reporting. #295
275 - Consolidates all bundled library licenses into the COPYING file. #294
276 - Updates bundled sha1 library to one with a cleaner interface and more
277   straight-forward license. Thank you lotodore for reporting and Evgeni Golov
278   for reviewing. #294
279 - Re-introduces strands to asio transport, allowing `io_service` thread pools to
280   be used (with some limitations).
281 - Removes endpoint code that kept track of a connection list that was never used
282   anywhere. Removes a lock and reduces connection creation/deletion complexity
283   from O(log n) to O(1) in the number of connections.
284 - A number of internal changes to transport APIs
285 - Deprecates iostream transport `readsome` in favor of `read_some` which is more
286   consistent with the naming of the rest of the library.
287 - Adds preliminary signaling to iostream transport of eof and fatal transport
288   errors
289 - Updates transport code to use shared pointers rather than raw pointers to
290   prevent asio from retaining pointers to connection methods after the
291   connection goes out of scope. #293 Thank you otaras for reporting.
292 - Fixes an issue where custom headers couldn't be set for client connections
293   Thank you Jerry Win and Wolfram Schroers for reporting.
294 - Fixes a compile error on visual studio when using interrupts. Thank you Javier
295   Rey Neira for reporting this.
296 - Adds new 1012 and 1013 close codes per IANA registry
297 - Add `set_remote_endpoint` method to iostream transport.
298 - Add `set_secure` method to iostream transport.
299 - Fix typo in .gitattributes file. Thank you jstarasov for reporting this. #280
300 - Add missing locale include. Thank you Toninoso for reporting this. #281
301 - Refactors `asio_transport` endpoint and adds full documentation and exception
302   free varients of all methods.
303 - Removes `asio_transport` endpoint method cancel(). Use `stop_listen()` instead
304 - Wrap internal `io_service` `run_one()` method
305 - Suppress error when trying to shut down a connection that was already closed
306
307 0.3.0-alpha3 - 2013-07-16
308 - Minor refactor to bundled sha1 library
309 - HTTP header comparisons are now case insensitive. #220, #275
310 - Refactors URI to be exception free and not use regular expressions. This
311   eliminates the dependency on boost or C++11 regex libraries allowing native
312   C++11 usage on GCC 4.4 and higher and significantly reduces staticly built
313   binary sizes.
314 - Updates handling of Server and User-Agent headers to better handle custom
315   settings and allow suppression of these headers for security purposes.
316 - Fix issue where pong timeout handler always fired. Thank you Steven Klassen
317   for reporting this bug.
318 - Add ping and pong endpoint wrapper methods
319 - Add `get_request()` pass through method to connection to allow calling methods
320   specific to the HTTP policy in use.
321 - Fix issue compile error with `WEBSOCKETPP_STRICT_MASKING` enabled and another
322   issue where `WEBSOCKETPP_STRICT_MASKING` was not applied to incoming messages.
323   Thank you Petter Norby for reporting and testing these bugs. #264
324 - Add additional macro guards for use with boost_config. Thank you breyed
325   for testing and code. #261
326
327 0.3.0-alpha2 - 2013-06-09
328 - Fix a regression that caused servers being sent two close frames in a row
329   to end a connection uncleanly. #259
330 - Fix a regression that caused spurious frames following a legitimate close
331   frames to erroneously trigger handlers. #258
332 - Change default HTTP response error code when no http_handler is defined from
333   500/Internal Server Error to 426/Upgrade Required
334 - Remove timezone from logger timestamp to work around issues with the Windows
335   implementation of strftime. Thank you breyed for testing and code. #257
336 - Switch integer literals to char literals to improve VCPP compatibility.
337   Thank you breyed for testing and code. #257
338 - Add MSVCPP warning suppression for the bundled SHA1 library. Thank you breyed
339   for testing and code. #257
340
341 0.3.0-alpha1 - 2013-06-09
342 - Initial Release