New
Release v3.11.0
Changelog
This release contains some breaking changes. See the "Changed" section below.
Changed
- Build
- Disable NATS Streaming by default by @mtmk in #770
- TLS
- Require OpenSSL 1.1.1+ to compile. Removed the
NATS_BUILD_TLS_USE_OPENSSL_1_1_APICMake variable by @kozlovic in #905 - The option
natsOptions_SetSSLVerificationCallbacksignature was changed to replace the use ofSSL_verify_cb(which required OpenSSL dependency in thenats.hfile), to the new callbacknatsSSLVerifyCb. See documentation ofnatsSSLVerifyCbto see the cast needed to compile with this new header file by @kozlovic in #908
- Require OpenSSL 1.1.1+ to compile. Removed the
- Modification of a
natsOptionsobject if it has TLS/SSL configuration and is actively used by connections will now return aNATS_ILLEGAL_STATEby @kozlovic in #912
Added
- Options
- Ability to load the trusted CA certificates from a directory using the new option
natsOptions_LoadCATrustedCertificatesPathby @kerbert101 in #862 - Ability to connect via HTTP proxy for instance by adding a proxy connection handler using the new option
natsOptions_SetProxyConnHandlerby @wolfkor in #871 and @kozlovic in #897 - Ability to load the certificate chain and key from a file on every connection attempt using the new option
natsOptions_LoadCertificatesChainDynamicby @Matus-p in #901 - Ability to perform concurrent TLS handshakes that may improve time it takes for concurrent connections to be established using the new option
natsOptions_AllowConcurrentTLSHandshakesby @kozlovic in #914. Issue was reported by @yanyongcheng in #899
- Ability to load the trusted CA certificates from a directory using the new option
- JetStream
- Per-message TTL support (a NATS Server v2.11 feature) by @levb in #863
- Pull consumer priority groups (a NATS Server v2.11 feature) by @levb in #869
- ObjectStore support by @kozlovic in #902. Thanks to @jfflynn41 and @alex1891 for the feedback in #876
Improved
- JetStream
- Handling of publish asynchronous timeouts by @kozlovic in #886. Issue reported by @yanyongcheng in #880
- Timer insertion by @kozlovic in #883. Issue reported by @yanyongcheng in #881
Fixed
- EventLoop:
- Handling of possible failure on initial attach by @kozlovic in #918
- LibEvent:
natsConnection_Close()not closing the TCP connection by @kozlovic in #882. Issue was reported by @yanyongcheng in #879 - Libuv: Possible crash if connection is destroyed while receiving data by @kozlovic in #889. Issue was reported by @yanyongcheng in #888
- KeyValue
- Keys, History or watcher's next may incorrectly return
NATS_TIMEOUTby @kozlovic in #917/ Issue was reported by @ArashPartow in #916
- Keys, History or watcher's next may incorrectly return
- MicroServices:
- Wrong marshaling of
average_processing_timeby @kozlovic in #892. Issue was reported by @Archie3d in #890 - Statistics error was always incremented by @kozlovic in #894. Issue was reported by @Archie3d in #893
- Wrong marshaling of
- TLS
- Unknown type name
SSL_verify_cbby @kozlovic in #878. Issue was reported by @philipfoulkes in #877 - Initialization and cleanup code related to OpenSSL was removed since it was deprecated for versions post OpenSSL 1.1. A cleanup function pertinent to 1.1+ code was possibly causing a problem. By @kozlovic in #905. Issue was reported by @vdeters in #904
- Possible hang during handshake by @kozlovic in #907. Issue was reported by @etrochim in #906
- Protect calls to
SSL_readandSSL_writewith a mutex. Since the sameSSLobject is shared between different threads, the OpenSSL library requires a mutex to be used by @kozlovic in #913
- Unknown type name
- Memory allocation check by @wooffie in #868
- Add missing status text string by @oldnick85 in #872 and @kozlovic in #874 (the issue was not present in any published release and was introduced in #869)
- Parsing of message headers with
NULLor all-whitespace values by @habbbe in #873 - Removed some unused code related to handling of responses and added custom inbox with very long prefix test by @kozlovic in #885. Issue was reported by @yanyongcheng in #884
- Connection drain could cause missed reply and/or a 100ms delay by @kozlovic in #915. Issue was reported by @T-Maxxx in #911
Non-code changes
- Build
- Deprecated Ubuntu 20.04 in GitHub actions by @levb in #864
- Removed the older compiler jobs by @levb in #865
- Fixed Windows build to use the NATS Server main branch by @levb in #866
New Contributors
- @kerbert101 made their first contribution in #862
- @habbbe made their first contribution in #873
- @wolfkor made their first contribution in #871
- @Matus-p made their first contribution in #901