Changelog for PubNub Posix-CPP SDK
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.
Modified
- Update
.pubnub.yml
file with access token revoke and secret key all access.
Fixed
- Remove body from
signature
calculation for requests with DELETE HTTP method.
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
inpubnub_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
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.
Fixed
- Improved handling of lost connection while in HTTP Keep-Alive
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 (withstore=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
Added
- Improve exising and add new logging
Fixed
- Fix handling of segmented messages
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