Releases: nats-io/nats.c
Releases · nats-io/nats.c
Release v3.12.0
Changelog
This release contains a fix to the ObjectStore that caused the meta subject of objects to be incorrectly encoded, which would cause other NATS libraries to fail to retrieve some of the objects (it would depend on the result of object name encoding). The fix here could cause now the C client to be unable to retrieve objects that it previously stored. A tool has been provided to repair the object stores that may have been affected. See PR #934 and #936 for more details.
Changed
- KeyValue
- "const" correctness for some of the
kvStoreAPIs by @nigels-com and @kozlovic in #929, #930 and #931
- "const" correctness for some of the
- ObjectStore
Fixed
- Failure to reconnect in some conditions during the first connect. This would happen with option
natsOptions_SetRetryOnFailedConnectby @Matus-p in #926
Non-code changes
New Contributors
- @nigels-com made their first contribution in #929, #930
- @Zabrimus made their first contribution in #933
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
- 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:
- 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
New Contributors
v3.10.1
v3.10.0
Added
- Added UpdatesOnly to kwWatchOptions by @levb in #818
- Add SSL cert validation callback by @ckasabula in #826
- [ADDED] natsConnection_ReadLastError replaces natsConnection_GetLastE… by @levb in #846
Fixed
- [FIXED] EventLoop: Socket now closed only after event loop done polling by @kozlovic in #815
- [FIXED] microservice cleanup (flapping MicroServiceStops... tests) by @levb in #816
- [NIT] removed line-trailing whitespace in the code by @levb in #817
- [FIXED] Examples: Add missing 'stream' and 'durable' params in usage by @kozlovic in #821
- Fixed JetStreamBackOffRedeliveries test by @kozlovic in #822
- [FIXED] build error (#819) by @oldnick85 in #820
- [FIXED] Build: failure with mingw by @kozlovic in #828
- [FIXED] microService_AddEndpoint() could crash if subject is invalid by @kozlovic in #831
- [FIXED] C++ compiler errors by @mtmk in #832
- [FIXED] Build: failure with Android NDK by @mtmk in #830
- [FIXED] GH-823 deadlock in js_MaybeFetchMore by @levb in #834
- [FIXED] Default statistics handler of microservice had unnecessary check by @kozlovic in #837
- [FIXED] Added missing
NATS_EXTERNon some functions. by @kozlovic in #836 - fix: some nulls checks by @wooffie in #840
- fix: double free and deref after free in js.c by @wooffie in #839
- fix: typo in clear routine by @wooffie in #842
- fix: better cleanup if js clone config fails by @wooffie in #844
- Fix possible null deref in pub by @wooffie in #848
- fix: srvpool typo by @wooffie in #849
Non-code changes
- Generate cnats-config-version.cmake by @rolflussi in #813
- Removed [EXPERIMENTAL] from KV API by @levb in #838
- Removed all remaining EXPERIMENTAL (micro)services documentation references by @levb in #847
New Contributors
- @rolflussi made their first contribution in #813
- @oldnick85 made their first contribution in #820
- @ckasabula made their first contribution in #826
- @wooffie made their first contribution in #840
Full Changelog: v3.9.0...v3.10
v3.9.3
Fixed:
- microService_AddEndpoint() could crash if subject is invalid #831
- deadlock in js_MaybeFetchMore #834
- double free and deref after free in js.c#839
- some nulls checks #840
- typo in clear routine #842
- better cleanup if js clone config fails #844
- possible null deref #848
- srvpool typo #849
Full Changelog: v3.9.2...v3.9.3
v3.9.2
Fixed
- EventLoop: Socket now closed only after event loop done polling #815
- microservice cleanup (flapping MicroServiceStops... tests) #816
- removed line-trailing whitespace in the code #817
- Examples: Add missing 'stream' and 'durable' params in usage #821
- JetStreamBackOffRedeliveries test #822
Build
Full Changelog: v3.9.1...v3.9.2
Release v3.9.1
v3.9.0
Added
js_PauseConsumersupport (also changed jsConsumerConfig, jsCo… by @levb in #726- Expose
MaxPendingByteson thenatsOptionsby @LaurensVergote in #700 kvStore_WatchMulti,js_Subscribe[Sync]Multiby @levb in #750natsConnection_Reconnectby @levb in #757- Support %-encoded username/password in server URLs by @levb in #765
- Support linking with MinGW toolchains on Linux by @XJ-0461 in #763
- TLS:
natsOptions_TLSHandshakeFirst()by @kozlovic in #780 - Adding SNI extension if available by @thierryba in #787
- Add filtering to KV method returning all keys by @saurabhojha in #797
js_PullSubscribeAsyncby @levb in #785- [BREAKING] Services: queue group now configurable and can be disabled by @levb in #800
nats_GetJWTOrSeedto understand Windows \r\n lines by @levb in #801
Fixed
- Moved micro_args to examples by @levb in #731
- Modify JetStream examples (Add comments to SubjectsLen) by @pch-blog in #734
- Build: issue on Android with
NATS_EXTRA_LIBby @kozlovic in #739 - GH-738, do not prefix endpoint name with the group prefix by @levb in #741
- GH-736: added extern to micro_Errors by @levb in #743
- Fix heap buffer overflow in _fetch by @tyler92 in #749
- Improve Windows build support by @mtmk in #760
- refactored nats.c, prep for
js_PullSubscribeAsyncby @levb in #778 - Fixing setting handshake_first without setting secure in the natsOptions by @thierryba in #789
Non-code changes
- [ADDED] GitHub action to update docs by @levb in #720
- [FIXED] doxygen GH action skip ci, include release_* by @levb in #725
- [FIXED] More fixes for doxygen autoupdate by @levb in #729
- [FIXED] flapping test: Test_KeyValueMirrorCrossDomains by @levb in #747
- [ADDED] Build with GitHub actions by @levb in #748
- [CI only]: Nightly test server main, latest release by @levb in #751
- [TEST only] increased Test_KeyValueMirrorCrossDomains timeout value by @levb in #753
- [CI only] Adjusted coverage targets/thresholds by @levb in #752
- [CI only] run tests once, not x3 except for main, release by @levb in #759
- [TEST ONLY] Fixed Test_JetStreamSubscribeIdleHeartbeat by @levb in #764
- [CI only] Skip codecov for forks until they resolve tokenless uploads… by @levb in #768
- [FIXED] cleaning up sanitize=thread found several races by @levb in #771
- benchmark for SubscribeAsync by @levb in #774
- Fixed test_JetStreamInfoAlternates flapper by @kozlovic in #775
- [CHANGED] sub benchmark tuned by @levb in #777
- Fixed flappers and test_SSLHandshakeFirst by skipping if server is < 2.10.0 by @kozlovic in #784
- Fixed test SSLVerifyHostName when build NATS_FORCE_HOST_VERIFICATION=OFF by @kozlovic in #788
- nats.c is available on conan.io/center by @mathi-m in #791
- [TEST ONLY] test fixes for 2.11 server changes by @levb in #798
New Contributors
- @github-actions made their first contribution in #732
- @pch-blog made their first contribution in #734
- @LaurensVergote made their first contribution in #700
- @mtmk made their first contribution in #760
- @XJ-0461 made their first contribution in #763
- @thierryba made their first contribution in #787
- @mathi-m made their first contribution in #791
- @saurabhojha made their first contribution in #797
Full Changelog: v3.8.0...v3.9.0
Release v3.8.3
Changes
- Fix heap buffer overflow in _fetch #749
- Changed "Ws2_32" to "ws2_32" for MinGW compatibility with no adverse e…#763
- Changed
nats_GetJWTOrSeedto understand Windows \r\n lines #801
Test-only changes
- Fixed flapping test: Test_KeyValueMirrorCrossDomains #747
- Increased Test_KeyValueMirrorCrossDomains timeout value #753
- Fixed Test_JetStreamSubscribeIdleHeartbeat #764
- Test fixes for 2.11 server changes #798
Full Changelog: v3.8.2...v3.8.3
v3.8.2
Fixed
- Moved micro_args to examples by @levb in #731
- [FIXED] Build: issue on Android with NATS_EXTRA_LIB by @kozlovic in #739
- [FIXED] GH-786, do not prefix endpoint name with the group prefix by @levb in #741
- [FIXED] GH-736: added extern to micro_Errors by @levb in #743
Full Changelog: v3.8.0...v3.8.2