WebSocket++ v0.8.0 Release Notes

Release Date: 2018-07-12 // almost 3 years ago
    • 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.