Releases: alanxz/rabbitmq-c
Releases · alanxz/rabbitmq-c
rabbitmq-c v0.15.0
v0.15.0 - 2024-11-19
Fixed
- Warning on MacOS about incompatible function declaration
- Logic when decoding AMQP data after bad data may cause crash (#837)
- Use SSL_get1_peer_certificate when compiling against OpenSSL 3+
Changed
- Updates to various github actions.
Added
rabbitmq-c v0.14.0
v0.14.0 - 2024-03-18
Fixed
- Fix potential stackoverflow in decoding table and array
- Fix issue with Mach-O version (#758)
- Make dependency on OpenSSL in rabbitmq-c.cmake match what is built (#725)
- Fix pkg-config generation when CMAKE_INSTALL_DIR is absolute (#733)
- Fix issue with amqp_basic_publish blocking in non-blocking mode (#780)
- Fix SSL hostname check (#784)
- Fix bug in amqp-consume documentation #791
Changed
- CMake minimum version is now 3.22
- OpenSSL minimum version is now 1.1.1
- Minimum TLS version supported is v1.2 (v1.3 is also supported).
- OpenSSL ENGINE APIs are conditionally enabled based on availability
Added
rabbitmq-c v0.13.0
rabbitmq-c v0.12.0
Changed
- rabbitmq-c now compiles as C99
- CMake 3.12 is new minimum required version
- CMake -DBUILD_TESTS renamed to -DBUILD_TESTING
- CMake -DBUILD_EXAMPLES now defaults to OFF
- CMake -DBUILD_TOOLS now defaults to OFF
- Unix library version now matches the release version, SONAME remains the same.
- Modernized CMake scripts to better adopt modern standards
- Public headers have moved to rabbitmq-c/ directory
- Dropped support for MSVC older than VS 2010
- Dropped support for OpenSSL v1.1.0 and older
- Minimum SSL version set to TLSv1.2
- Updated to RabbitMQ framing to v3.8.19
rabbitmq-c v0.11.0
Added:
- rabbitmq-c-config.cmake is now generated (#611)
- rabbitmq-c can be compiled on Win32 using pthreads (#613)
- Add amqp_set_ssl_engine API to allow setting OpenSSL engine (#618)
- Add amqp_ssl_socket_set_key_engine API to allow setting OpenSSL engine (#618)
- Add support use of password-protected SSL keys (#661)
Changed
- Update OpenSSL library initialization to current best practices (#603)
- Updates to OpenSSL to support v3.0.0 (#654, 627)
Fixed:
- OpenSSL symbol clash when compiling on Win32 (#583)
- Restore correct non-blocking behavior using OpenSSL v1.1.1 (#586)
- Disable harmless secure CRT compile warnings on Win32 (#588)
- Fix unused parameter warnings on Win32 (#591)
- Fix invalid format in generated pkg-config file (#599)
- Fix invalid AMQP_STATUS_HEARTBEAT_TIMEOUT (#557)
- Fix incorrect port when using --server flag in CLI tools
rabbitmq-c v0.10.0
Added:
- amqp_ssl_socket_get_context can be used to get the current OpenSSL CTX*
associated with a connection.
Changed:
- openssl: missing OpenSSL config is ignored as an OpenSSL init error (#523)
- AMQP_DEFAULT_MAX_CHANNELS is now set to 2047 to follow current default channel
limit in the RabbitMQ broker. (#513)
Fixed:
- add additional input validation to prevent integer overflow when parsing a
frame header. This addresses CVE-2019-18609.
rabbitmq-c v0.9.0
Added:
- amqp-publish: added support for specifying headers via the -H flag
- Add support for specifying timeout for amqp_login calls via
amqp_set_handshake_timeout - Add support for specifying timeouts in RPC-style AMQP methods via
amqp_set_rpc_timeout - Add define for
AMQP_DEFAULT_VHOST
- Support for SSL SNI
- Support for OpenSSL v1.1.0
Changed:
- rabbitmq-c now requires Windows Vista or better
- rabbitmq-c enables TCP keep-alive by default on platforms that support it
- dropped support for compiling rabbitmq-c without threading support
- OpenSSL is no longer un-intialized automatically by default. OpenSSL can be
explicitly initialized by calling amqp_initialize_ssl_library and
uninitialized by calling amqp_uninitialize_ssl_library.
Fixed:
- Correct bugs in processing of --url flag in tools (#364).
- Improve documentation on AMQP_SASL_METHOD_EXTERNAL (#349)
- Improve support for compiling under mingw-w64
- Better support for handing SIGPIPE on Linux over SSL (#401)
- Improve publish performance on Linux by not specifying MSG_MORE on last part
of message. - Fix connection logic where multiple hostnames won't be tried if connection to
doesn't fail immediately (#430)
Removed:
- autotools build system has been removed
- many duplicate amqps_* examples, they did not add a lot of value
rabbitmq-c v0.8.0
Added:
- SSL: peer certificate and hostname validation can now be controlled separately
usingamqp_ssl_socket_set_verify_peer
and
amqp_ssl_socket_set_verify_hostname
. - SSL: the desire SSL version range can now be specified using the
amqp_ssl_socket_set_ssl_versions
function. - Add flags to SSL examples on controlling hostname verification.
Changed:
- SSL: SSLv2, and SSLv3 have been disabled by default.
- SSL: OpenSSL hostname validation has been improved.
- Win32 debug information is built with /Z7 on MSVC to embed debug info instead
of using a .pdb
Fixed:
- Connection failure results in hang on Win32 (#297, #346)
- Rabbitmq-c may block when attempting to close an SSL socket (#313)
- amqp_parse_url does not correctly initialize default parameters (#319)
- x509 objects are leaked in verify_hostname (#323)
- TCP_NOPUSH doesn't work under cygwin (#335)
Deprecated
- SSL:
amqp_ssl_socket_set_verify
is being replaced by
amqp_ssl_socket_set_verify_peer
andamqp_ssl_socket_set_verify_hostname
.
Removed:
- OpenVMS build system and related files.
- Unmaintained PolarSSL, CyaSSL, and gnuTLS SSL backends
rabbitmq-c v0.7.1
Bug fixes:
- Win32: Use WSAEWOULDBLOCK instead of EWOULDBLOCK on Win32 (win32 clients would fail to connect)
- Lib: if channel_max is 0 use server's channel_max
- Lib: fix build on OpenBSD
A full listing of changes can be found in the change log:
https://github.com/alanxz/rabbitmq-c/blob/v0.7.1/ChangeLog.md
rabbitmq-c v0.7.0
Enhancements
- Add support for EXTERNAL SASL method
- Use non-blocking sockets internally
- Add support for servicing heartbeats while in a blocking send call
- Add support for RabbitMQ Auth Failure extension
Note: this release has some fairly substantial refactoring of the socket code. Please test carefully before running in production.
A full listing of changes can be found in the change log:
https://github.com/alanxz/rabbitmq-c/blob/v0.7.0/ChangeLog.md