WebSocket++ 0.8.0 Released

295 views
Skip to first unread message

Peter Thorson

unread,
Jul 12, 2018, 9:02:45 AM7/12/18
to WebSocket++ Announcements
WebSocket++ 0.8.0 was released 2018-07-12. This is a maintenance/bug fix release with no breaking changes.

Detailed change list:

- Examples: Add `print_client` example. This demonstrates a minimal non-TLS
  client that connects to a server and prints out the messages it receives.
- Examples: Add `print_client_tls` example. This demonstrates a minimal TLS
  client, including basic support via Asio+OpenSSL for certificate chain
  and hostname verification.
- Feature: Add getter for all headers to the HTTP parsers. This allows a
  wrapping library to enumerate all headers to send upstream. Thank you Jupp
  Müller for reporting and an initial pull request.
- Improvement: Move the `socket_init_handler` to execute as a part of `init_asio`
  rather than connection `pre_init`. This allows setting of socket options prior
  to the bind/listen/accept system calls. Thank you ChristianRobl3D for
  reporting #530.
- Improvement: Timers in transport integration tests should only fail if their
  own test times out, rather than any test. #643 Thank you Alex Korotkin for
  reporting and a patch.
- Improvement: Preserve transport layer error codes in more cases, particularly
  during calls to `endpoint::listen`. #652 Thank you vadz for reporting and
  patches.
- Compatibility: Make sure the chrono library used by Boost/Asio is in sync
  with what the websocketpp is using. Thank you Flow86 for reporting and a
  patch.
- Compatibility: Update `telemetry_client` to use a slightly more cross platform
  method of sleeping. Should work on windows now. Thank you Meir Yanovich for
  reporting.
- Compatibility: Updated permessage-deflate support to reflect that the zlib
  library does not actually support a sliding window size of 256 bits. 
  WebSocket++ will no longer negotiate 256 bit deflate windows. If the user
  of the library tries to request a 256 bit window a 512 bit window will be
  specified instead (This was the previous behavior). #596 #653 Thank you 
  Vinnie Falco and Gianfranco Costamagna for reporting.
- Compatibility: Better error handling and logging in cases where extension
  requests parse correctly but negotiation fails.
- Compatibility: Removed custom handling of `SSL_R_SHORT_READ` error condition.
  This error code no longer exists in modern versions of OpenSSL and causes
  a build error. It wasn't being used for anything particularly important
  (slightly improving error reporting) and there isn't a great replacement.
  #599 Thank you Gianfranco Costamagna for reporting.
- Compatibility: Add missing `<stdint>` headers. Fixes issues with g++ 5.4.0.
  #638 Thank you Alex Korotkin for reporting and a patch.
- Compatibility: Remove the use of `std::auto_ptr` and `std::binary_function`
  from builds with C++11 or later. These features are deprecated and were
  removed entirely in C++17. This change allows building WebSocket++ on
  C++17 compilers. #592 Thank you Michal Fojtak for reporting and a patch
- Compatibility: Add 1014 close code and adds missing descriptions for codes
  1012 and 1013. #589 Thank you jbwdevries and ronneke1996 for reporting and
  patches.
- Compatibility: Add hooks to support `mingw-std-threads` C++11 thread and mutex
  polyfill library as an alternative to Boost. #608 Thank you Peter Taylor for
  reporting and an initial patch.
- Compatibility: Changed the handshake connection token to 'Upgrade' from
  'upgrade'. Technically this header is supposed to be processed case
  insensitively. In practice, there are browsers (such as Edge) that don't do
  this and they tend to use the uppercase value used as an example in RFC6455.
  Thank you Johann Bauer for reporting and a patch. #727
- Bug: Store loggers in shared pointers to avoid crashes related to connections
  trying to write logs entries after their respective endpoint has been
  deallocated. Thank you Thalhammer for reporting and Jupp Müller for the 
  patch. #539 #501
- Bug: Change default listen backlog from 0 to `socket_base::max_connections`.
  #549. Thank you derwassi and zwelab for reporting and na1pir for providing
  access to hardware to debug the issue.
- Bug: Fix a crash in the accept loop when `get_connection` fails. #551 Thank you
  Walter Gray for a patch.
- Bug/Documentation: Fix incorrect example code that used 
  `websocketpp::lib::error_code` instead of `websocketpp::exception`. Thank you
  heretic13 for reporting
- Bug: Fix uninitialized shared pointer in Asio transport test suite. #647
  Thank you Alex Korotkin for reporting and a patch.
- Bug: Fix a thread safety issue in the permessage-deflate extension that
  caused message corruption when sending compressed messages from a different
  thread than the main I/O thread. #615 Thank you KyleNyenhuis and Pieter De 
  Gendt for reporting and a patch.
- Bug: Fix an undefined behavior issue performing a 64 bit wide shift on a 64
  bit value. #636 Thank you Gregor Jasny for reporting and a patch
- Bug: Fix some compile issues with ASIO_STANDALONE. #662 #665 Thank you
  chronoxor and Guillaume Egles for reporting and patches.
Reply all
Reply to author
Forward
0 new messages