April 25, 2022
- Handle state for subscribe and resubscribe.
March 9, 2022
- Support system name servers in async DNS client.
- Fix multiple memory safety and leak issues.
- Fix slash char encoding for pnsdk.
January 11, 2022
- Add token permissions revoke functionality.
.pubnub.ymlfile with access token revoke and secret key all access.
- Remove body from
signaturecalculation for requests with DELETE HTTP method.
January 10, 2022
- Filter-expr query param typo.
January 5, 2022
- Encode = (equal) sign for filter expression.
October 11, 2021
- Implemented PAMv3 support.
- Handle subscribe error for empty channel-group.
September 15, 2021
- Error codes for missing subscribe timetoken.
June 14, 2021
- Added PAMv3 Grant Token support.
May 24, 2021
- BREAKING CHANGE - Added PUBNUB_RAND_INIT_VECTOR to support dynamic IV, default to true.
May 10, 2021
- Handling Access Denied server error in Pubnub Access Manager requests.
April 20, 2021
- Implemented Pubnub Access Manager Support.
- Implemented Objects V2. Removed Objects V1.
January 20, 2021
- Added support for Universal Windows(UWP).
October 3, 2020
- Fix DNS servers rotation during transaction origin DNS resolution timeout.
April 8, 2020
- Dynamically allocate memory for
January 31, 2020
- Properly handle DNS retries and stale HTTP Kept-Alive connections
January 16, 2020
- Fix assertion failure while retrying timed out DNS queries with multiple contexts
December 5, 2019
- Add support for automatic sending of heartbeat messages with sync interface (POSIX and Windows)
November 22, 2019
- Add support for automatic sending of heartbeat messages on Windows, callback.
November 15, 2019
- Support automatic sending of heartbeat messages (only on POSIX, callback, for now).
October 25, 2019
- Fix Qt
October 20, 2019
- Introduce Actions API
- Add 'include_meta' parameter to pubnub_history_ex()
- Fix stopwatch not working after 25 days
October 18, 2019
- Restore get/set connection timeout in C++ wrapper
October 2, 2019
- Retry if DNS server does not respond. Number of retries is a compile-time parameter.
- In C++, fix transaction finishing before user starts to wait for it to finish.
September 23, 2019
- Introduce Objects API
- Fix high history (extended/full) handling of 'reverse' and other boolean parameters
September 10, 2019
- 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
- Fix high CPU load in callback interface when no context, thus socket, is executing a transaction
September 3, 2019
- Detect TCP/IP connect timeout in callback mode w/sockets - does not seem to work on Windows
- Add set_proxy_none() to pubnub::context
August 28, 2019
- 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.
August 25, 2019
- Improvements in sockets and DNS error reporting
August 9, 2019
- Introduce Signals support
- Support subscribe V2 in C++ & Qt
- Add pubnub_stop() for graceful shutdown when using callback interface
June 12, 2019
- Introduce minimal transaction timer duration
- Use QTime for transaction timer duration
May 31, 2019
- Use TTL from DNS response (cache resolved addresses)
- Better identification of the platform we run on
- Detect authenticating proxy that works incorrectly
April 29, 2019
- Will try other address from (async) DNS response if first one fails
- Will try secondary (async) DNS server if primary doesn't work
April 29, 2019
- Update pubnub_allooc_std.c to pubnub_cancel() changes
March 18, 2019
- Support Message Counts API
February 19, 2019
- Support IPv6 for DNS resolution (mostly for callback interface)
January 17, 2019
- URL encode channel name(s)
January 8, 2019
- 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
- C++ wrapper and Qt did not have proper multithreading support as they did not protect their data. Now that is fixed.
December 20, 2018
- Fix memory leak regarding OpenSSL
December 2, 2018
- Publish can now be GZIPed (if done via POST)
- Publish via POST encrypted could publish garbage and fail
November 20, 2018
- Publish can now be done via POST
- Several smaller DNS en/de/coding issues fixed
November 8, 2018
- pubnub_await() in the sync interface now reports PNR_TIMEOUT on, well, (transaction) timeout
November 4, 2018
- DNS en/de/coding could fail on some toolchains because of alignment issues.
November 2, 2018
- TLS connection timeout was prone to errors due to time synchronisation and such.
November 1, 2018
- Fix wrong detection of PNR_TIMEOUT, by reset of TLS connect timer when connection is established.
October 18, 2018
- Fix DNS decoding
October 16, 2018
- 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
September 10, 2018
- 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.
- Improved handling of lost connection while in HTTP Keep-Alive
August 30, 2018
- Removed (unused) option to ignore TLS/SSL errors
August 28, 2018
- Support HTTPS CONNECT proxy
- Can set proxy via IP address and
- Adhere to Connection: close from server
- Functional tests improved, can run concurrently
- Possible pointer out of bounds fixed in JSON parser
- MacOS build fixed
July 25, 2018
- Support OpenSSL 1.1.x with callback interface
- Add support for filter expressions on subscribe
- Enable receiving GZIP-ed reply
July 12, 2018
- Enable setting HTTP Keep-Alive use on/off for C++ and Qt
July 6, 2018
- Enable reading system DNS on Windows
- Small fixes in system DNS reading/parsing
June 14, 2018
- 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
- 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
April 11, 2018
- 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
- Avoid (currently harmless) inconsistent locking order
- Fix HTTP GET & CONNECT proxy w/HTTP Keep-Alive
March 10, 2018
- Unify default blocking I/O setting to block in sync and non-block in callback interface
March 8, 2018
- Read from OpenSSL in a loop, to handle more than one record received at a time
- Fix minor race condition on timer expiry
March 5, 2018
- Use HTTP Keep-alive, where possible
February 6, 2018
- Fix removing the first context from the timer list
February 6, 2018
- Support OpenSSL 1.1.0+ (BIO_(s|g)et_conn_ip -> BIO_(s|g)et_conn_address)
- Handle chunks larger than http_buff
- Fix receiving data longer than http_buff at a time
December 30, 2017
- Cleanups, fix build issue and warnings on Windows
October 30, 2017
- Fix resource leaks in C++ pubnub::futres on Windows
October 5, 2017
- Fix build issues on Mac
October 1, 2017
- Fix high CPU utilization when network out on Mac
September 25, 2017
- Fix off-by-one error
September 14, 2017
- Fix handling of recv() errrno on MacOS
September 10, 2017
- Support OpenSSL 1.1.0+ (removed BIO_set_conn_port_int)
- Some logging code was not using proper types
September 1, 2017
- Fix potential issue in interpreting UTF-8 char values
August 30, 2017
- Fix off-by-one error
March 9, 2017
- Improve exising and add new logging
- Fix handling of segmented messages
October 12, 2016
- 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
- Fixes and improvements of the console sample application
April 2, 2016
- Fix C++ pubnub::futres destructor hanging up
February 22, 2016
- First "core feature complete" release