Changelog for POSIX C++ SDK

## v5.2.0 *August 19, 2025* | Type | Changes | |------|----------| | **Added** | • Expose functions through the C++ interface to enable or disable system SSL certificate usage when establishing a secure connection. | ## v5.1.6 *August 5, 2025* | Type | Changes | |------|----------| | **Fixed** | • Fixed deadlock for sync polling via `last_result`. | ## v5.1.5 *July 28, 2025* | Type | Changes | |------|----------| | **Fixed** | • Define sleep function for Windows builds. | | **Modified** | • Guard `unistd` inclusion with platform check. | ## v5.1.4 *July 22, 2025* | Type | Changes | |------|----------| | **Fixed** | • Fix bug that UTF8 characters used in some end points were breaking the request format. | ## v5.1.3 *July 15, 2025* | Type | Changes | |------|----------| | **Fixed** | • Fixed memory leak when calling pubnub_free on an initialized PubNub object.<br/>• Fixed socket leak when calling pubnub_free on a PubNub object with an open connection.<br/>• Fixed socket leak when publishing using a context with use_http_keep_alive = 0.<br/>• Fixed crash due to double-free when calling pubnub_free after pbpal_handle_socket_condition encounters a socket error. | ## v5.1.2 *July 8, 2025* | Type | Changes | |------|----------| | **Modified** | • Use recursive semaphore for `mutex` lock and unlock in `pbpal_mutex.h`. | ## v5.1.1 *June 26, 2025* | Type | Changes | |------|----------| | **Fixed** | • Fix issue because of which it was impossible for sync PubNub context version to cancel operation awaited in secondary thread. | | **Modified** | • Fix the code for which the compiler emitted warnings during the build for `mbedTLS` and `ESP_PLATFORM=1`. | ## v5.1.0 *June 19, 2025* | Type | Changes | |------|----------| | **Added** | • Add functions which allow to enable and disable 'smart heartbeat' behavior for automatic heartbeat: `pubnub_enable_smart_heartbeat` and `pubnub_disable_smart_heartbeat`.<br/>• Add `pubnub_last_publish_timetoken` function to retrieve recently published message high precision timetoken. | | **Fixed** | • Fix issue which caused deadlock on secondary thread and as result heartbeat stop.<br/>• Fix signature of `pbntf_init_callback` and its usage in Windows dedicated code. | ## v5.0.3 *June 17, 2025* | Type | Changes | |------|----------| | **Fixed** | • Fixed wrong string copy if multiple channels(groups) are provided for `pubnub_set_state`. Note that using `memcpy` instead of `strncpy` is used intentionally because of the ESP support.<br/>• Fixed crash when double comma is provided to `pubnub_set_state` as a channels(groups).<br/>• Fixed wrong check if the reallocation is required in `pubnub_set_state`.<br/>• Removed additional allocation of memory for temporary data.<br/>• Changed the amount of bytes allocated based on the provided parameters instead of hardcoded values. | ## v5.0.2 *June 2, 2025* | Type | Changes | |------|----------| | **Fixed** | • Fix `pubnub_reconnect` and `pubnub_disconnect` not to print an error when called within incorrect subscription state. Warning will be printed instead and function won't execute further. | ## v5.0.1 *May 26, 2025* | Type | Changes | |------|----------| | **Fixed** | • Fix crashes that could sometimes happen during unsubscribe due to calling `strlen` on null pointers.<br/>• Fix `pubnub_fetch_history` function when used with crypto api. Change `PUBNUB_MAX_URL_PARAMS` to 12.<br/>• Fix the issue that was causing memory fragmentation fault at the moment of the next automated heartbeat call. | ## v5.0.0 *April 3, 2025* | Type | Changes | |------|----------| | **Added** | • Add `PUBNUB_NTF_RUNTIME_SELECTION` flag that allows to select API type at runtime.<br/>• Introduce `void*` parameter for user data in listeners to let callbacks keep context on demand. | ## v4.19.1 *April 2, 2025* | Type | Changes | |------|----------| | **Fixed** | • Fix the issue that there was an assertion when using App Context functions with `limit` set to 100. | ## v4.19.0 *March 19, 2025* | Type | Changes | |------|----------| | **Added** | • Add the ability to set `timetoken` (for message catchup) in `pubnub_subscribe_v2_options` which is used with `pubnub_subscribe_v2`. | | **Fixed** | • Fix issue which was source of segmentation fault when tried to access memory after it has been freed. | ## v4.18.1 *February 11, 2025* | Type | Changes | |------|----------| | **Fixed** | • Fix issue because of which `signature` value in query has been truncated. | ## v4.18.0 *February 6, 2025* | Type | Changes | |------|----------| | **Added** | • Add `status` and `type` support for channel and uuid metadata objects state update API. | ## v4.17.0 *January 16, 2025* | Type | Changes | |------|----------| | **Added** | • Add possibility to replace default log function with a callback provided by the user. | ## v4.16.1 *January 9, 2025* | Type | Changes | |------|----------| | **Fixed** | • Remove the `user_id` length restriction for dynamically allocated memory for it. | | **Modified** | • Configure `try_compile` when building a static library. | ## v4.16.0 *December 25, 2024* | Type | Changes | |------|----------| | **Added** | • Additional flags for C/CPP can be set with: `USER_C_FLAGS` / `USER_CXX_FLAGS`. | | **Fixed** | • Fix because of which one of the source files has been missed for Windows.<br/>• Fix issue with unsupported concatenation of sources files / definitions (`+=`). | | **Modified** | • Refactor our `Makefiles` from different folders and platforms to use `include` directives to include shared definitions, flags, source files. | ## v4.15.0 *November 25, 2024* | Type | Changes | |------|----------| | **Added** | • Add custom message type support for the following APIs: publish, signal, share file, subscribe and history.<br/>• Add `pubnub_set_ipv4_connectivity` and `pubnub_set_ipv6_connectivity` to `pubnub_coreapi` to switch preferred connectivity protocol. | | **Fixed** | • Make sure that in case of connection close (including because of error) proxy context object will be reset. | ## v4.14.1 *October 24, 2024* | Type | Changes | |------|----------| | **Fixed** | • Fix CMakeLists to build correctly on Windows. | | **Modified** | • Prepare CMakeLists to support builds for Arm64 architecture. | ## v4.14.0 *October 15, 2024* | Type | Changes | |------|----------| | **Added** | • Add core Event Engine implementation with the required set of types and methods.<br/>• Add Subscribe Event Engine built atop of the core Event Engine implementation.<br/>• Add the following entities: channel, channel group, uuid and channel metadata objects.<br/>• Add objects to manage subscriptions and provides interface for update listeners.<br/>• Add new event listeners, which make it possible to add listeners to a specific entity or group of entities (though subscription and subscription set).<br/>• Added ability to configure automated retry policies for failed requests. | ## v4.13.1 *September 5, 2024* | Type | Changes | |------|----------| | **Fixed** | • Removed additional null byte character. | ## v4.13.0 *August 9, 2024* | Type | Changes | |------|----------| | **Added** | • Add `delete message` API support to the advanced history module. | ## v4.12.3 *August 5, 2024* | Type | Changes | |------|----------| | **Fixed** | • Add the missing `ttl` parameter to the `pubnub_publish_options` for extended `publish` configuration. | ## v4.12.2 *August 5, 2024* | Type | Changes | |------|----------| | **Fixed** | • Fixed custom `bool` type for CMake builds. | ## v4.12.1 *August 5, 2024* | Type | Changes | |------|----------| | **Fixed** | • Fix query values for boolean flags for history endpoint (`include meta`, `include uuid`, `include message type` and `reverse`). | ## v4.12.0 *July 29, 2024* | Type | Changes | |------|----------| | **Added** | • Added `filter` and `sort` parameters to be closer to the other SDKs with object API.<br/>• Configurable `bool` type. | | **Fixed** | • Missing features needed for grant token API in CMakeLIsts.txt. | ## v4.11.2 *July 15, 2024* | Type | Changes | |------|----------| | **Fixed** | • Added missing subscribe v2 crypto implementation. | ## v4.11.1 *June 28, 2024* | Type | Changes | |------|----------| | **Fixed** | • Fixed `cmake` build for not ESP32 builds. | ## v4.11.0 *June 27, 2024* | Type | Changes | |------|----------| | **Added** | • Provided support for ESP32 devices via ESP-IDF framework.<br/>• Provided support for MBedTLS library used within esp32 platform. | | **Modified** | • Replace `strncpy` with `strcpy` in blocks where it is safer to be used. | ## v4.10.0 *June 14, 2024* | Type | Changes | |------|----------| | **Added** | • Added possibility to use strings in actions API. | | **Modified** | • `pubnub_action_type` enum has been deprecated. | ## v4.9.1 *March 26, 2024* | Type | Changes | |------|----------| | **Fixed** | • Fix too small amount of memory allocated for aes cbc algorithm in some cases. | | **Modified** | • Add possibility to include address sanitizer in build via CMake. | ## v4.9.0 *January 8, 2024* | Type | Changes | |------|----------| | **Added** | • Provide CMake support.<br/>• Adjust `build.cs` unreal engine file for CMake build. | ## v4.8.0 *December 7, 2023* | Type | Changes | |------|----------| | **Added** | • Add `#if` switches into files that are related to PubNub features to not rely only on makefiles. [Be careful when update. It's not a breaking change at all but might fail build for custom makefiles!]. | ## v4.7.1 *November 23, 2023* | Type | Changes | |------|----------| | **Fixed** | • Handle unencrypted message while getting messages with crypto. | ## v4.7.0 *November 20, 2023* | Type | Changes | |------|----------| | **Added** | • Provided `PUBNUB_EXTERN` macro to extern C functions. | ## v4.6.2 *November 14, 2023* | Type | Changes | |------|----------| | **Fixed** | • Fix `pubnub_free()` function on not initialised PubNub that can cause exceptions/undefined behaviours. | ## v4.6.1 *November 8, 2023* | Type | Changes | |------|----------| | **Fixed** | • Provide missing `publish()` function overload for QT wrapper that allows set publish related options. | ## v4.6.0 *October 30, 2023* | Type | Changes | |------|----------| | **Added** | • Add the `PUBNUB_QT_MOVE_TO_THREAD` flag as default to give users the opportunity to manage threads by themselves. | | **Fixed** | • Move `pubnub_qt` into QT main thread by default to be sure that timers will be run in it. | ## v4.5.0 *October 16, 2023* | Type | Changes | |------|----------| | **Added** | • Update the crypto module structure and add enhanced AES-CBC cryptor. | | **Fixed** | • Improved security of crypto implementation by increasing the cipher key entropy by a factor of two.<br/>• Fixed missing return from failed `pbaes256_decrypt_alloc()` function. | ## v4.4.0 *September 28, 2023* | Type | Changes | |------|----------| | **Added** | • Provide module files to integrate SDK with Unreal Enigne. | ## v4.3.0 *July 24, 2023* | Type | Changes | |------|----------| | **Added** | • Add `publisher` field into `pubnub_v2_message`. | | **Fixed** | • Fixed `flags` and `region` values that always equaled `0`. | ## v4.2.2 *May 24, 2023* | Type | Changes | |------|----------| | **Fixed** | • Conditionally use of using newest openssl API Ipv4 parsing is needed for working with proxy. Include object file with that function for proxy builds. | | **Modified** | • Use newest openssl API. | ## v4.2.1 *April 26, 2023* | Type | Changes | |------|----------| | **Modified** | • Conditionally use `sha256` when build is linked with OpenSSL 3+ version. | ## v4.2.0 *February 7, 2023* | Type | Changes | |------|----------| | **Added** | • Updated QT to version `6.*`. | | **Fixed** | • Fixed not building QT module.<br/>• Align QT module with current SDK state. | | **Modified** | • Removed some states, classes and structs that aren't currently used. | ## v4.1.0 *January 16, 2023* | Type | Changes | |------|----------| | **Added** | • Added pubnub_set_state_ex to support heartbeat. | | **Fixed** | • Removed state param from subscribe request.<br/>• Added state param to hearbeat request. | ## v4.0.6 *December 14, 2022* | Type | Changes | |------|----------| | **Fixed** | • Fixed hanging allocated memory after error in `parse_token` by cleaning the result memory on `cbor` error. | | **Modified** | • Implemented more tests for `pubnub_token_parse` function to increase confidence about that function.<br/>• Refactored implementation of some tests' setups. | ## v4.0.5 *December 2, 2022* | Type | Changes | |------|----------| | **Fixed** | • Fixed compilation error for MSVC in `pubnub_parse_token` function. | ## v4.0.4 *November 25, 2022* | Type | Changes | |------|----------| | **Fixed** | • Fixed crashing parsing token for not valid values by logging an error and returning `NULL`. | ## v4.0.3 *November 17, 2022* | Type | Changes | |------|----------| | **Fixed** | • Fixed wrong pointer reallocation in string concatenation.<br/>• Fixed allocation counter that was not taking to the account recursed allocations. | ## v4.0.2 *November 15, 2022* | Type | Changes | |------|----------| | **Fixed** | • Improved accuracy of the base64 encoding size what fixes buffer underflow in encryption module.<br/>• Fixed undefined behaviours in `pubnub_encrypt_decrypt_iv_sample.c` by including some additional checks and variable initialisations. | | **Modified** | • Made same base for encrypt functions what makes codes easier to understand and maintain. | ## v4.0.1 *November 8, 2022* | Type | Changes | |------|----------| | **Fixed** | • `ERR_load_BIO_strings()` is deprecated in OpenSSL 3.0. Low-level encoding primitives are also deprecated. `EVP_EncodeBlock()` is available in all currently supported OpenSSL releases. | ## v4.0.0 *November 2, 2022* | Type | Changes | |------|----------| | **Added** | • Add `user_id` configuration option that deprecates `uuid` ones.<br/>• BREAKING CHANGES: now `user_id` (old `uuid`) is a required property!. | ## v3.5.2 *October 11, 2022* | Type | Changes | |------|----------| | **Fixed** | • Fix memory leak in cpp `parse_token` method.<br/>• Fix buffer overflow in core `pubnub_parse_token` function for some cases.<br/>• Fix buffer overflow in core `pubnub_encrypt` function for randomized initial vector. | ## v3.5.1 *September 22, 2022* | Type | Changes | |------|----------| | **Fixed** | • Fix wrong parsing uuid in parse_token.<br/>• Fix case sensitive header check. | ## v3.5.0 *September 8, 2022* | Type | Changes | |------|----------| | **Added** | • Implemented Fetch History. | ## v3.4.3 *July 5, 2022* | Type | Changes | |------|----------| | **Fixed** | • Removed extra parenthesis in get_dns_ip function code.<br/>• Added uuid query param to history, set/get state, wherenow, channel-group operations. | ## v3.4.2 *April 25, 2022* | Type | Changes | |------|----------| | **Fixed** | • Handle state for subscribe and resubscribe. | ## v3.4.1 *March 9, 2022* | Type | Changes | |------|----------| | **Fixed** | • Support system name servers in async DNS client.<br/>• Fix multiple memory safety and leak issues.<br/>• Fix slash char encoding for pnsdk. | ## v3.4.0 *January 11, 2022* | Type | Changes | |------|----------| | **Added** | • Add token permissions revoke functionality. | | **Fixed** | • Remove body from `signature` calculation for requests with DELETE HTTP method. | | **Modified** | • Update `.pubnub.yml` file with access token revoke and secret key all access. | ## v3.3.2 *January 10, 2022* | Type | Changes | |------|----------| | **Fixed** | • Filter-expr query param typo. | ## v3.3.1 *January 5, 2022* | Type | Changes | |------|----------| | **Fixed** | • Encode = (equal) sign for filter expression. | ## v3.3.0 *October 11, 2021* | Type | Changes | |------|----------| | **Added** | • Implemented PAMv3 support. | | **Fixed** | • Handle subscribe error for empty channel-group. | ## v3.2.0 *September 15, 2021* | Type | Changes | |------|----------| | **Fixed** | • Error codes for missing subscribe timetoken. | ## v3.1.0 *June 14, 2021* | Type | Changes | |------|----------| | **Added** | • Added PAMv3 Grant Token support. | ## v3.0.0 *May 24, 2021* | Type | Changes | |------|----------| | **Added** | • BREAKING CHANGE - Added PUBNUB_RAND_INIT_VECTOR to support dynamic IV, default to true. | ## v2.14.0 *May 10, 2021* | Type | Changes | |------|----------| | **Fixed** | • Handling Access Denied server error in Pubnub Access Manager requests. | ## v2.13.0 *April 20, 2021* | Type | Changes | |------|----------| | **Added** | • Implemented Pubnub Access Manager Support.<br/>• Implemented Objects V2. Removed Objects V1. | ## v2.12.7 *January 20, 2021* | Type | Changes | |------|----------| | **Added** | • Added support for Universal Windows(UWP). | ## v2.12.6 *October 3, 2020* | Type | Changes | |------|----------| | **Fixed** | • Fix DNS servers rotation during transaction origin DNS resolution timeout. | ## v2.12.5 *April 8, 2020* | Type | Changes | |------|----------| | **Modified** | • Dynamically allocate memory for `uuid` in `pubnub_set_uuid` function. | ## v2.12.4 *January 31, 2020* | Type | Changes | |------|----------| | **Fixed** | • Properly handle DNS retries and stale HTTP Kept-Alive connections | ## v2.12.3 *January 16, 2020* | Type | Changes | |------|----------| | **Fixed** | • Fix assertion failure while retrying timed out DNS queries with multiple contexts | ## v2.12.2 *December 5, 2019* | Type | Changes | |------|----------| | **Modified** | • Add support for automatic sending of heartbeat messages with sync interface (POSIX and Windows) | ## v2.12.1 *November 22, 2019* | Type | Changes | |------|----------| | **Modified** | • Add support for automatic sending of heartbeat messages on Windows, callback. | ## v2.12.0 *November 15, 2019* | Type | Changes | |------|----------| | **Modified** | • Support automatic sending of heartbeat messages (only on POSIX, callback, for now). | ## v2.11.1 *October 25, 2019* | Type | Changes | |------|----------| | **Fixed** | • Fix Qt | ## v2.11.0 *October 20, 2019* | Type | Changes | |------|----------| | **Modified** | • Introduce Actions API<br/>• Add 'include_meta' parameter to pubnub_history_ex() | | **Fixed** | • Fix stopwatch not working after 25 days | ## v2.10.2 *October 18, 2019* | Type | Changes | |------|----------| | **Fixed** | • Restore get/set connection timeout in C++ wrapper | ## v2.10.1 *October 2, 2019* | Type | Changes | |------|----------| | **Modified** | • Retry if DNS server does not respond. Number of retries is a compile-time parameter. | | **Fixed** | • In C++, fix transaction finishing before user starts to wait for it to finish. | ## v2.10.0 *September 23, 2019* | Type | Changes | |------|----------| | **Modified** | • Introduce Objects API | | **Fixed** | • Fix high history (extended/full) handling of 'reverse' and other boolean parameters | ## v2.9.4 *September 10, 2019* | Type | Changes | |------|----------| | **Modified** | • Introduce separate connection timer, to control/limit the duration of DNS resolving and connection establishment, which should be much shorter than full transaction timer, which has to be >5 min for subscribe | | **Fixed** | • Fix high CPU load in callback interface when no context, thus socket, is executing a transaction | ## v2.9.3 *September 3, 2019* | Type | Changes | |------|----------| | **Modified** | • Detect TCP/IP connect timeout in callback mode w/sockets - does not seem to work on Windows<br/>• Add set_proxy_none() to pubnub::context | ## v2.9.2 *August 28, 2019* | Type | Changes | |------|----------| | **Fixed** | • Proxy admin functions (set, get) were not protected by mutex/monitor, so caused a race condition<br/>• Setting new proxy might have been ignored until the resolved DNS addresses of the previous proxy expire.<br/>• If all resolved addresses on file expire, we would report transaction failure instead of just asking for new ones. | ## v2.9.1 *August 25, 2019* | Type | Changes | |------|----------| | **Modified** | • Improvements in sockets and DNS error reporting | ## v2.9.0 *August 9, 2019* | Type | Changes | |------|----------| | **Modified** | • Introduce Signals support<br/>• Support subscribe V2 in C++ & Qt<br/>• Add pubnub_stop() for graceful shutdown when using callback interface | ## v2.8.4 *June 12, 2019* | Type | Changes | |------|----------| | **Modified** | • Introduce minimal transaction timer duration<br/>• Use QTime for transaction timer duration | ## v2.8.3 *May 31, 2019* | Type | Changes | |------|----------| | **Modified** | • Use TTL from DNS response (cache resolved addresses)<br/>• Better identification of the platform we run on<br/>• Detect authenticating proxy that works incorrectly | ## v2.8.2 *April 29, 2019* | Type | Changes | |------|----------| | **Modified** | • Will try other address from (async) DNS response if first one fails<br/>• Will try secondary (async) DNS server if primary doesn't work | ## v2.8.1 *April 29, 2019* | Type | Changes | |------|----------| | **Modified** | • Update pubnub_allooc_std.c to pubnub_cancel() changes | ## v2.8.0 *March 18, 2019* | Type | Changes | |------|----------| | **Modified** | • Support Message Counts API | ## v2.7.0 *February 19, 2019* | Type | Changes | |------|----------| | **Modified** | • Support IPv6 for DNS resolution (mostly for callback interface) | ## v2.6.4 *January 17, 2019* | Type | Changes | |------|----------| | **Fixed** | • URL encode channel name(s) | ## v2.6.3 *January 8, 2019* | Type | Changes | |------|----------| | **Modified** | • Update samples to changes in pubnub_cancel() and other interface changes<br/>• Update samples to use time() instead of clock() as clock() can measure CPU-only time instead of real time<br/>• Update Qt functional tests and make them reliable<br/>• UUID is now part of the Pubnub context (instead of a pointer to it). This makes handling its lifetime easier, yet does not incur much memory increase | | **Fixed** | • C++ wrapper and Qt did not have proper multithreading support as they did not protect _their_ data. Now that is fixed. | ## v2.6.2 *December 20, 2018* | Type | Changes | |------|----------| | **Fixed** | • Fix memory leak regarding OpenSSL | ## v2.6.1 *December 2, 2018* | Type | Changes | |------|----------| | **Modified** | • Publish can now be GZIPed (if done via POST) | | **Fixed** | • Publish via POST encrypted could publish garbage and fail | ## v2.6.0 *November 20, 2018* | Type | Changes | |------|----------| | **Modified** | • Publish can now be done via POST | | **Fixed** | • Several smaller DNS en/de/coding issues fixed | ## v2.5.8 *November 8, 2018* | Type | Changes | |------|----------| | **Modified** | • pubnub_await() in the sync interface now reports PNR_TIMEOUT on, well, (transaction) timeout | ## v2.5.7 *November 4, 2018* | Type | Changes | |------|----------| | **Fixed** | • DNS en/de/coding could fail on some toolchains because of alignment issues. | ## v2.5.6 *November 2, 2018* | Type | Changes | |------|----------| | **Fixed** | • TLS connection timeout was prone to errors due to time synchronisation and such. | ## v2.5.5 *November 1, 2018* | Type | Changes | |------|----------| | **Fixed** | • Fix wrong detection of PNR_TIMEOUT, by reset of TLS connect timer when connection is established. | ## v2.5.4 *October 18, 2018* | Type | Changes | |------|----------| | **Fixed** | • Fix DNS decoding | ## v2.5.3 *October 16, 2018* | Type | Changes | |------|----------| | **Added** | • Add support for pubnub_subscribe_v2() w/filter expressions<br/>• pubnub_cancel() returns is it done, or it just started the cancellation<br/>• Code that is only for TLS/SSL ifdef-ed out when not building w/TLS/SSL<br/>• Functional tests for C++ updated and now run on each commit | ## v2.5.2 *September 10, 2018* | Type | Changes | |------|----------| | **Fixed** | • Improved handling of lost connection while in HTTP Keep-Alive | | **Added** | • pubnub_free() now implies pubnub_cancel()<br/>• pubnub_cancel() will now call pbnc_fsm() in the sync interface. Combined with previous, this makes it possible to call pubnub_free() in sync interface and have it succeed even if transaction is ongoing. | ## v2.5.1 *August 30, 2018* | Type | Changes | |------|----------| | **Added** | • Removed (unused) option to ignore TLS/SSL errors | ## v2.5.0 *August 28, 2018* | Type | Changes | |------|----------| | **Added** | • Support HTTPS CONNECT proxy<br/>• Can set proxy via IP address and `localhost`<br/>• Adhere to Connection&#58; close from server<br/>• Functional tests improved, can run concurrently | | **Fixed** | • Possible pointer out of bounds fixed in JSON parser<br/>• MacOS build fixed | ## v2.4.3 *July 25, 2018* | Type | Changes | |------|----------| | **Added** | • Support OpenSSL 1.1.x with callback interface<br/>• Add support for filter expressions on subscribe<br/>• Enable receiving GZIP-ed reply | ## v2.4.2 *July 12, 2018* | Type | Changes | |------|----------| | **Added** | • Enable setting HTTP Keep-Alive use on/off for C++ and Qt | ## v2.4.1 *July 6, 2018* | Type | Changes | |------|----------| | **Added** | • Enable reading system DNS on Windows | | **Fixed** | • Small fixes in system DNS reading/parsing | ## v2.4.0 *June 14, 2018* | Type | Changes | |------|----------| | **Added** | • Callback interface uses (our own) async DNS<br/>• Enable sending meta data when publishing<br/>• Enable setting `norep` (do not replicate) when publishing (with `store=false`, publish becomes "fire")<br/>• On MacOS, use SO_NOSIGPIPE to avoid SIGPIPE on the socket | | **Fixed** | • Small fixes for async DNS<br/>• Bad handling of new transaction started in the callback and HTTP keep-alive was active<br/>• Bad handling of error (connection lost) when starting a new transaction on a HTTP kept-alive connection | ## v2.3.3 *April 11, 2018* | Type | Changes | |------|----------| | **Added** | • On Linux, use MSG_NOSIGNAL to avoid SIGPIPE on send()<br/>• Add API to read proxy configuration<br/>• Send up-to-date version info in User-Agent HTTP header | | **Fixed** | • Avoid (currently harmless) inconsistent locking order<br/>• Fix HTTP GET & CONNECT proxy w/HTTP Keep-Alive | ## v2.3.2 *March 10, 2018* | Type | Changes | |------|----------| | **Fixed** | • Unify default blocking I/O setting to block in sync and non-block in callback interface | ## v2.3.1 *March 8, 2018* | Type | Changes | |------|----------| | **Fixed** | • Read from OpenSSL in a loop, to handle more than one record received at a time<br/>• Fix minor race condition on timer expiry | ## v2.3.0 *March 5, 2018* | Type | Changes | |------|----------| | **Added** | • Use HTTP Keep-alive, where possible | ## v2.2.14 *February 6, 2018* | Type | Changes | |------|----------| | **Fixed** | • Fix removing the first context from the timer list | ## v2.2.13 *February 6, 2018* | Type | Changes | |------|----------| | **Added** | • Support OpenSSL 1.1.0+ (BIO_(s|g)et_conn_ip -> BIO_(s|g)et_conn_address) | | **Fixed** | • Handle chunks larger than http_buff<br/>• Fix receiving data longer than http_buff at a time | ## v2.2.12 *December 30, 2017* | Type | Changes | |------|----------| | **Fixed** | • Cleanups, fix build issue and warnings on Windows | ## v2.2.11 *October 30, 2017* | Type | Changes | |------|----------| | **Fixed** | • Fix resource leaks in C++ pubnub::futres on Windows | ## v2.2.10 *October 5, 2017* | Type | Changes | |------|----------| | **Fixed** | • Fix build issues on Mac | ## v2.2.9 *October 1, 2017* | Type | Changes | |------|----------| | **Fixed** | • Fix high CPU utilization when network out on Mac | ## v2.2.8 *September 25, 2017* | Type | Changes | |------|----------| | **Fixed** | • Fix off-by-one error | ## v2.2.7 *September 14, 2017* | Type | Changes | |------|----------| | **Fixed** | • Fix handling of recv() errrno on MacOS | ## v2.2.6 *September 10, 2017* | Type | Changes | |------|----------| | **Added** | • Support OpenSSL 1.1.0+ (removed BIO_set_conn_port_int) | | **Fixed** | • Some logging code was not using proper types | ## v2.2.5 *September 1, 2017* | Type | Changes | |------|----------| | **Fixed** | • Fix potential issue in interpreting UTF-8 char values | ## v2.2.4 *August 30, 2017* | Type | Changes | |------|----------| | **Fixed** | • Fix off-by-one error | ## v2.2.3 *March 9, 2017* | Type | Changes | |------|----------| | **Fixed** | • Fix handling of segmented messages | | **Added** | • Improve exising and add new logging | ## v2.2.2 *October 12, 2016* | Type | Changes | |------|----------| | **Added** | • Improve parsing of bad publish/subscribe key error<br/>• Add option to turn of SSL/TLS session reuse<br/>• PNR_TIMEOUT no longer resets the time token | | **Fixed** | • Fixes and improvements of the console sample application | ## v2.2.1 *April 2, 2016* | Type | Changes | |------|----------| | **Fixed** | • Fix C++ pubnub::futres destructor hanging up | ## v2.2.0 *February 22, 2016* | Type | Changes | |------|----------| | **Added** | • First "core feature complete" release |

v5.2.0

August 19, 2025
Added
  • Expose functions through the C++ interface to enable or disable system SSL certificate usage when establishing a secure connection.

v5.1.6

August 5, 2025
Fixed
  • Fixed deadlock for sync polling via last_result.

v5.1.5

July 28, 2025
Fixed
  • Define sleep function for Windows builds.
Modified
  • Guard unistd inclusion with platform check.

v5.1.4

July 22, 2025
Fixed
  • Fix bug that UTF8 characters used in some end points were breaking the request format.

v5.1.3

July 15, 2025
Fixed
  • Fixed memory leak when calling pubnub_free on an initialized PubNub object.
  • Fixed socket leak when calling pubnub_free on a PubNub object with an open connection.
  • Fixed socket leak when publishing using a context with use_http_keep_alive = 0.
  • Fixed crash due to double-free when calling pubnub_free after pbpal_handle_socket_condition encounters a socket error.

v5.1.2

July 8, 2025
Modified
  • Use recursive semaphore for mutex lock and unlock in pbpal_mutex.h.

v5.1.1

June 26, 2025
Fixed
  • Fix issue because of which it was impossible for sync PubNub context version to cancel operation awaited in secondary thread.
Modified
  • Fix the code for which the compiler emitted warnings during the build for mbedTLS and ESP_PLATFORM=1.

v5.1.0

June 19, 2025
Added
  • Add functions which allow to enable and disable 'smart heartbeat' behavior for automatic heartbeat: pubnub_enable_smart_heartbeat and pubnub_disable_smart_heartbeat.
  • Add pubnub_last_publish_timetoken function to retrieve recently published message high precision timetoken.
Fixed
  • Fix issue which caused deadlock on secondary thread and as result heartbeat stop.
  • Fix signature of pbntf_init_callback and its usage in Windows dedicated code.

v5.0.3

June 17, 2025
Fixed
  • Fixed wrong string copy if multiple channels(groups) are provided for pubnub_set_state. Note that using memcpy instead of strncpy is used intentionally because of the ESP support.
  • Fixed crash when double comma is provided to pubnub_set_state as a channels(groups).
  • Fixed wrong check if the reallocation is required in pubnub_set_state.
  • Removed additional allocation of memory for temporary data.
  • Changed the amount of bytes allocated based on the provided parameters instead of hardcoded values.

v5.0.2

June 2, 2025
Fixed
  • Fix pubnub_reconnect and pubnub_disconnect not to print an error when called within incorrect subscription state. Warning will be printed instead and function won't execute further.

v5.0.1

May 26, 2025
Fixed
  • Fix crashes that could sometimes happen during unsubscribe due to calling strlen on null pointers.
  • Fix pubnub_fetch_history function when used with crypto api. Change PUBNUB_MAX_URL_PARAMS to 12.
  • Fix the issue that was causing memory fragmentation fault at the moment of the next automated heartbeat call.

v5.0.0

April 3, 2025
Added
  • Add PUBNUB_NTF_RUNTIME_SELECTION flag that allows to select API type at runtime.
  • Introduce void* parameter for user data in listeners to let callbacks keep context on demand.

v4.19.1

April 2, 2025
Fixed
  • Fix the issue that there was an assertion when using App Context functions with limit set to 100.

v4.19.0

March 19, 2025
Added
  • Add the ability to set timetoken (for message catchup) in pubnub_subscribe_v2_options which is used with pubnub_subscribe_v2.
Fixed
  • Fix issue which was source of segmentation fault when tried to access memory after it has been freed.

v4.18.1

February 11, 2025
Fixed
  • Fix issue because of which signature value in query has been truncated.

v4.18.0

February 6, 2025
Added
  • Add status and type support for channel and uuid metadata objects state update API.

v4.17.0

January 16, 2025
Added
  • Add possibility to replace default log function with a callback provided by the user.

v4.16.1

January 9, 2025
Fixed
  • Remove the user_id length restriction for dynamically allocated memory for it.
Modified
  • Configure try_compile when building a static library.

v4.16.0

December 25, 2024
Added
  • Additional flags for C/CPP can be set with: USER_C_FLAGS / USER_CXX_FLAGS.
Fixed
  • Fix because of which one of the source files has been missed for Windows.
  • Fix issue with unsupported concatenation of sources files / definitions (+=).
Modified
  • Refactor our Makefiles from different folders and platforms to use include directives to include shared definitions, flags, source files.

v4.15.0

November 25, 2024
Added
  • Add custom message type support for the following APIs: publish, signal, share file, subscribe and history.
  • Add pubnub_set_ipv4_connectivity and pubnub_set_ipv6_connectivity to pubnub_coreapi to switch preferred connectivity protocol.
Fixed
  • Make sure that in case of connection close (including because of error) proxy context object will be reset.

v4.14.1

October 24, 2024
Fixed
  • Fix CMakeLists to build correctly on Windows.
Modified
  • Prepare CMakeLists to support builds for Arm64 architecture.

v4.14.0

October 15, 2024
Added
  • Add core Event Engine implementation with the required set of types and methods.
  • Add Subscribe Event Engine built atop of the core Event Engine implementation.
  • Add the following entities: channel, channel group, uuid and channel metadata objects.
  • Add objects to manage subscriptions and provides interface for update listeners.
  • Add new event listeners, which make it possible to add listeners to a specific entity or group of entities (though subscription and subscription set).
  • Added ability to configure automated retry policies for failed requests.

v4.13.1

September 5, 2024
Fixed
  • Removed additional null byte character.

v4.13.0

August 9, 2024
Added
  • Add delete message API support to the advanced history module.

v4.12.3

August 5, 2024
Fixed
  • Add the missing ttl parameter to the pubnub_publish_options for extended publish configuration.

v4.12.2

August 5, 2024
Fixed
  • Fixed custom bool type for CMake builds.

v4.12.1

August 5, 2024
Fixed
  • Fix query values for boolean flags for history endpoint (include meta, include uuid, include message type and reverse).

v4.12.0

July 29, 2024
Added
  • Added filter and sort parameters to be closer to the other SDKs with object API.
  • Configurable bool type.
Fixed
  • Missing features needed for grant token API in CMakeLIsts.txt.

v4.11.2

July 15, 2024
Fixed
  • Added missing subscribe v2 crypto implementation.

v4.11.1

June 28, 2024
Fixed
  • Fixed cmake build for not ESP32 builds.

v4.11.0

June 27, 2024
Added
  • Provided support for ESP32 devices via ESP-IDF framework.
  • Provided support for MBedTLS library used within esp32 platform.
Modified
  • Replace strncpy with strcpy in blocks where it is safer to be used.

v4.10.0

June 14, 2024
Added
  • Added possibility to use strings in actions API.
Modified
  • pubnub_action_type enum has been deprecated.

v4.9.1

March 26, 2024
Fixed
  • Fix too small amount of memory allocated for aes cbc algorithm in some cases.
Modified
  • Add possibility to include address sanitizer in build via CMake.

v4.9.0

January 8, 2024
Added
  • Provide CMake support.
  • Adjust build.cs unreal engine file for CMake build.

v4.8.0

December 7, 2023
Added
  • Add #if switches into files that are related to PubNub features to not rely only on makefiles. [Be careful when update. It's not a breaking change at all but might fail build for custom makefiles!].

v4.7.1

November 23, 2023
Fixed
  • Handle unencrypted message while getting messages with crypto.

v4.7.0

November 20, 2023
Added
  • Provided PUBNUB_EXTERN macro to extern C functions.

v4.6.2

November 14, 2023
Fixed
  • Fix pubnub_free() function on not initialised PubNub that can cause exceptions/undefined behaviours.

v4.6.1

November 8, 2023
Fixed
  • Provide missing publish() function overload for QT wrapper that allows set publish related options.

v4.6.0

October 30, 2023
Added
  • Add the PUBNUB_QT_MOVE_TO_THREAD flag as default to give users the opportunity to manage threads by themselves.
Fixed
  • Move pubnub_qt into QT main thread by default to be sure that timers will be run in it.

v4.5.0

October 16, 2023
Added
  • Update the crypto module structure and add enhanced AES-CBC cryptor.
Fixed
  • Improved security of crypto implementation by increasing the cipher key entropy by a factor of two.
  • Fixed missing return from failed pbaes256_decrypt_alloc() function.

v4.4.0

September 28, 2023
Added
  • Provide module files to integrate SDK with Unreal Enigne.

v4.3.0

July 24, 2023
Added
  • Add publisher field into pubnub_v2_message.
Fixed
  • Fixed flags and region values that always equaled 0.

v4.2.2

May 24, 2023
Fixed
  • Conditionally use of using newest openssl API Ipv4 parsing is needed for working with proxy. Include object file with that function for proxy builds.
Modified
  • Use newest openssl API.

v4.2.1

April 26, 2023
Modified
  • Conditionally use sha256 when build is linked with OpenSSL 3+ version.

v4.2.0

February 7, 2023
Added
  • Updated QT to version 6.*.
Fixed
  • Fixed not building QT module.
  • Align QT module with current SDK state.
Modified
  • Removed some states, classes and structs that aren't currently used.

v4.1.0

January 16, 2023
Added
  • Added pubnub_set_state_ex to support heartbeat.
Fixed
  • Removed state param from subscribe request.
  • Added state param to hearbeat request.

v4.0.6

December 14, 2022
Fixed
  • Fixed hanging allocated memory after error in parse_token by cleaning the result memory on cbor error.
Modified
  • Implemented more tests for pubnub_token_parse function to increase confidence about that function.
  • Refactored implementation of some tests' setups.

v4.0.5

December 2, 2022
Fixed
  • Fixed compilation error for MSVC in pubnub_parse_token function.

v4.0.4

November 25, 2022
Fixed
  • Fixed crashing parsing token for not valid values by logging an error and returning NULL.

v4.0.3

November 17, 2022
Fixed
  • Fixed wrong pointer reallocation in string concatenation.
  • Fixed allocation counter that was not taking to the account recursed allocations.

v4.0.2

November 15, 2022
Fixed
  • Improved accuracy of the base64 encoding size what fixes buffer underflow in encryption module.
  • Fixed undefined behaviours in pubnub_encrypt_decrypt_iv_sample.c by including some additional checks and variable initialisations.
Modified
  • Made same base for encrypt functions what makes codes easier to understand and maintain.

v4.0.1

November 8, 2022
Fixed
  • ERR_load_BIO_strings() is deprecated in OpenSSL 3.0. Low-level encoding primitives are also deprecated. EVP_EncodeBlock() is available in all currently supported OpenSSL releases.

v4.0.0

November 2, 2022
Added
  • Add user_id configuration option that deprecates uuid ones.
  • BREAKING CHANGES: now user_id (old uuid) is a required property!.

v3.5.2

October 11, 2022
Fixed
  • Fix memory leak in cpp parse_token method.
  • Fix buffer overflow in core pubnub_parse_token function for some cases.
  • Fix buffer overflow in core pubnub_encrypt function for randomized initial vector.

v3.5.1

September 22, 2022
Fixed
  • Fix wrong parsing uuid in parse_token.
  • Fix case sensitive header check.

v3.5.0

September 8, 2022
Added
  • Implemented Fetch History.

v3.4.3

July 5, 2022
Fixed
  • Removed extra parenthesis in get_dns_ip function code.
  • Added uuid query param to history, set/get state, wherenow, channel-group operations.

v3.4.2

April 25, 2022
Fixed
  • Handle state for subscribe and resubscribe.

v3.4.1

March 9, 2022
Fixed
  • Support system name servers in async DNS client.
  • Fix multiple memory safety and leak issues.
  • Fix slash char encoding for pnsdk.

v3.4.0

January 11, 2022
Added
  • Add token permissions revoke functionality.
Fixed
  • Remove body from signature calculation for requests with DELETE HTTP method.
Modified
  • Update .pubnub.yml file with access token revoke and secret key all access.

v3.3.2

January 10, 2022
Fixed
  • Filter-expr query param typo.

v3.3.1

January 5, 2022
Fixed
  • Encode = (equal) sign for filter expression.

v3.3.0

October 11, 2021
Added
  • Implemented PAMv3 support.
Fixed
  • Handle subscribe error for empty channel-group.

v3.2.0

September 15, 2021
Fixed
  • Error codes for missing subscribe timetoken.

v3.1.0

June 14, 2021
Added
  • Added PAMv3 Grant Token support.

v3.0.0

May 24, 2021
Added
  • BREAKING CHANGE - Added PUBNUB_RAND_INIT_VECTOR to support dynamic IV, default to true.

v2.14.0

May 10, 2021
Fixed
  • Handling Access Denied server error in Pubnub Access Manager requests.

v2.13.0

April 20, 2021
Added
  • Implemented Pubnub Access Manager Support.
  • Implemented Objects V2. Removed Objects V1.

v2.12.7

January 20, 2021
Added
  • Added support for Universal Windows(UWP).

v2.12.6

October 3, 2020
Fixed
  • Fix DNS servers rotation during transaction origin DNS resolution timeout.

v2.12.5

April 8, 2020
Modified
  • Dynamically allocate memory for uuid in pubnub_set_uuid function.

v2.12.4

January 31, 2020
Fixed
  • Properly handle DNS retries and stale HTTP Kept-Alive connections

v2.12.3

January 16, 2020
Fixed
  • Fix assertion failure while retrying timed out DNS queries with multiple contexts

v2.12.2

December 5, 2019
Modified
  • Add support for automatic sending of heartbeat messages with sync interface (POSIX and Windows)

v2.12.1

November 22, 2019
Modified
  • Add support for automatic sending of heartbeat messages on Windows, callback.

v2.12.0

November 15, 2019
Modified
  • Support automatic sending of heartbeat messages (only on POSIX, callback, for now).

v2.11.1

October 25, 2019
Fixed
  • Fix Qt

v2.11.0

October 20, 2019
Modified
  • Introduce Actions API
  • Add 'include_meta' parameter to pubnub_history_ex()
Fixed
  • Fix stopwatch not working after 25 days

v2.10.2

October 18, 2019
Fixed
  • Restore get/set connection timeout in C++ wrapper

v2.10.1

October 2, 2019
Modified
  • Retry if DNS server does not respond. Number of retries is a compile-time parameter.
Fixed
  • In C++, fix transaction finishing before user starts to wait for it to finish.

v2.10.0

September 23, 2019
Modified
  • Introduce Objects API
Fixed
  • Fix high history (extended/full) handling of 'reverse' and other boolean parameters

v2.9.4

September 10, 2019
Modified
  • Introduce separate connection timer, to control/limit the duration of DNS resolving and connection establishment, which should be much shorter than full transaction timer, which has to be >5 min for subscribe
Fixed
  • Fix high CPU load in callback interface when no context, thus socket, is executing a transaction

v2.9.3

September 3, 2019
Modified
  • Detect TCP/IP connect timeout in callback mode w/sockets - does not seem to work on Windows
  • Add set_proxy_none() to pubnub::context

v2.9.2

August 28, 2019
Fixed
  • Proxy admin functions (set, get) were not protected by mutex/monitor, so caused a race condition
  • Setting new proxy might have been ignored until the resolved DNS addresses of the previous proxy expire.
  • If all resolved addresses on file expire, we would report transaction failure instead of just asking for new ones.

v2.9.1

August 25, 2019
Modified
  • Improvements in sockets and DNS error reporting

v2.9.0

August 9, 2019
Modified
  • Introduce Signals support
  • Support subscribe V2 in C++ & Qt
  • Add pubnub_stop() for graceful shutdown when using callback interface

v2.8.4

June 12, 2019
Modified
  • Introduce minimal transaction timer duration
  • Use QTime for transaction timer duration

v2.8.3

May 31, 2019
Modified
  • Use TTL from DNS response (cache resolved addresses)
  • Better identification of the platform we run on
  • Detect authenticating proxy that works incorrectly

v2.8.2

April 29, 2019
Modified
  • Will try other address from (async) DNS response if first one fails
  • Will try secondary (async) DNS server if primary doesn't work

v2.8.1

April 29, 2019
Modified
  • Update pubnub_allooc_std.c to pubnub_cancel() changes

v2.8.0

March 18, 2019
Modified
  • Support Message Counts API

v2.7.0

February 19, 2019
Modified
  • Support IPv6 for DNS resolution (mostly for callback interface)

v2.6.4

January 17, 2019
Fixed
  • URL encode channel name(s)

v2.6.3

January 8, 2019
Modified
  • Update samples to changes in pubnub_cancel() and other interface changes
  • Update samples to use time() instead of clock() as clock() can measure CPU-only time instead of real time
  • Update Qt functional tests and make them reliable
  • UUID is now part of the Pubnub context (instead of a pointer to it). This makes handling its lifetime easier, yet does not incur much memory increase
Fixed
  • C++ wrapper and Qt did not have proper multithreading support as they did not protect _their_ data. Now that is fixed.

v2.6.2

December 20, 2018
Fixed
  • Fix memory leak regarding OpenSSL

v2.6.1

December 2, 2018
Modified
  • Publish can now be GZIPed (if done via POST)
Fixed
  • Publish via POST encrypted could publish garbage and fail

v2.6.0

November 20, 2018
Modified
  • Publish can now be done via POST
Fixed
  • Several smaller DNS en/de/coding issues fixed

v2.5.8

November 8, 2018
Modified
  • pubnub_await() in the sync interface now reports PNR_TIMEOUT on, well, (transaction) timeout

v2.5.7

November 4, 2018
Fixed
  • DNS en/de/coding could fail on some toolchains because of alignment issues.

v2.5.6

November 2, 2018
Fixed
  • TLS connection timeout was prone to errors due to time synchronisation and such.

v2.5.5

November 1, 2018
Fixed
  • Fix wrong detection of PNR_TIMEOUT, by reset of TLS connect timer when connection is established.

v2.5.4

October 18, 2018
Fixed
  • Fix DNS decoding

v2.5.3

October 16, 2018
Added
  • Add support for pubnub_subscribe_v2() w/filter expressions
  • pubnub_cancel() returns is it done, or it just started the cancellation
  • Code that is only for TLS/SSL ifdef-ed out when not building w/TLS/SSL
  • Functional tests for C++ updated and now run on each commit

v2.5.2

September 10, 2018
Fixed
  • Improved handling of lost connection while in HTTP Keep-Alive
Added
  • pubnub_free() now implies pubnub_cancel()
  • pubnub_cancel() will now call pbnc_fsm() in the sync interface. Combined with previous, this makes it possible to call pubnub_free() in sync interface and have it succeed even if transaction is ongoing.

v2.5.1

August 30, 2018
Added
  • Removed (unused) option to ignore TLS/SSL errors

v2.5.0

August 28, 2018
Added
  • Support HTTPS CONNECT proxy
  • Can set proxy via IP address and localhost
  • Adhere to Connection: close from server
  • Functional tests improved, can run concurrently
Fixed
  • Possible pointer out of bounds fixed in JSON parser
  • MacOS build fixed

v2.4.3

July 25, 2018
Added
  • Support OpenSSL 1.1.x with callback interface
  • Add support for filter expressions on subscribe
  • Enable receiving GZIP-ed reply

v2.4.2

July 12, 2018
Added
  • Enable setting HTTP Keep-Alive use on/off for C++ and Qt

v2.4.1

July 6, 2018
Added
  • Enable reading system DNS on Windows
Fixed
  • Small fixes in system DNS reading/parsing

v2.4.0

June 14, 2018
Added
  • Callback interface uses (our own) async DNS
  • Enable sending meta data when publishing
  • Enable setting norep (do not replicate) when publishing (with store=false, publish becomes "fire")
  • On MacOS, use SO_NOSIGPIPE to avoid SIGPIPE on the socket
Fixed
  • Small fixes for async DNS
  • Bad handling of new transaction started in the callback and HTTP keep-alive was active
  • Bad handling of error (connection lost) when starting a new transaction on a HTTP kept-alive connection

v2.3.3

April 11, 2018
Added
  • On Linux, use MSG_NOSIGNAL to avoid SIGPIPE on send()
  • Add API to read proxy configuration
  • Send up-to-date version info in User-Agent HTTP header
Fixed
  • Avoid (currently harmless) inconsistent locking order
  • Fix HTTP GET & CONNECT proxy w/HTTP Keep-Alive

v2.3.2

March 10, 2018
Fixed
  • Unify default blocking I/O setting to block in sync and non-block in callback interface

v2.3.1

March 8, 2018
Fixed
  • Read from OpenSSL in a loop, to handle more than one record received at a time
  • Fix minor race condition on timer expiry

v2.3.0

March 5, 2018
Added
  • Use HTTP Keep-alive, where possible

v2.2.14

February 6, 2018
Fixed
  • Fix removing the first context from the timer list

v2.2.13

February 6, 2018
Added
  • Support OpenSSL 1.1.0+ (BIO_(s|g)et_conn_ip -> BIO_(s|g)et_conn_address)
Fixed
  • Handle chunks larger than http_buff
  • Fix receiving data longer than http_buff at a time

v2.2.12

December 30, 2017
Fixed
  • Cleanups, fix build issue and warnings on Windows

v2.2.11

October 30, 2017
Fixed
  • Fix resource leaks in C++ pubnub::futres on Windows

v2.2.10

October 5, 2017
Fixed
  • Fix build issues on Mac

v2.2.9

October 1, 2017
Fixed
  • Fix high CPU utilization when network out on Mac

v2.2.8

September 25, 2017
Fixed
  • Fix off-by-one error

v2.2.7

September 14, 2017
Fixed
  • Fix handling of recv() errrno on MacOS

v2.2.6

September 10, 2017
Added
  • Support OpenSSL 1.1.0+ (removed BIO_set_conn_port_int)
Fixed
  • Some logging code was not using proper types

v2.2.5

September 1, 2017
Fixed
  • Fix potential issue in interpreting UTF-8 char values

v2.2.4

August 30, 2017
Fixed
  • Fix off-by-one error

v2.2.3

March 9, 2017
Fixed
  • Fix handling of segmented messages
Added
  • Improve exising and add new logging

v2.2.2

October 12, 2016
Added
  • Improve parsing of bad publish/subscribe key error
  • Add option to turn of SSL/TLS session reuse
  • PNR_TIMEOUT no longer resets the time token
Fixed
  • Fixes and improvements of the console sample application

v2.2.1

April 2, 2016
Fixed
  • Fix C++ pubnub::futres destructor hanging up

v2.2.0

February 22, 2016
Added
  • First "core feature complete" release
Last updated on
On this page