Skip to content

Releases: alanxz/rabbitmq-c

rabbitmq-c v0.15.0

20 Nov 03:08
Compare
Choose a tag to compare

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

  • Add amqp_publisher_confirm_wait function (#841)
  • Add amqp_literal_bytes macro (#844)

rabbitmq-c v0.14.0

23 Mar 19:29
Compare
Choose a tag to compare

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

  • Add option to read username/password from file in tools (#781)
  • Add amqp_ssl_socket_enable_default_verify_paths API to allow loading from default certification paths
  • rabbitmq-c can be compiled against BoringSSL (#814)

rabbitmq-c v0.13.0

06 Feb 00:34
Compare
Choose a tag to compare

Fixed

  • Fixed missing option to not install static library (#665)
  • Missing pkgconfig version in v0.12.0 output (#755, #751)
  • Correct return value from amqp_ssl_socket_set_key_buffer (#723)

Changed

  • Remove OpenSSL code no longer needed when used with OpenSSL >= 1.1.0. (Fixed: #715, #737)

Added

  • Integration with OSS-Fuzz (#736)

rabbitmq-c v0.12.0

01 Feb 14:18
Compare
Choose a tag to compare

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

01 Apr 03:27
Compare
Choose a tag to compare

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

02 Dec 04:41
Compare
Choose a tag to compare

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

08 May 07:40
Compare
Choose a tag to compare

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

10 Apr 05:16
Compare
Choose a tag to compare

Added:

  • SSL: peer certificate and hostname validation can now be controlled separately
    using amqp_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 and amqp_ssl_socket_set_verify_hostname.

Removed:

  • OpenVMS build system and related files.
  • Unmaintained PolarSSL, CyaSSL, and gnuTLS SSL backends

rabbitmq-c v0.7.1

13 Oct 03:00
Compare
Choose a tag to compare

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

17 Jun 05:57
Compare
Choose a tag to compare

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