Skip to content
Permalink
master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time

Change Log

v0.13.0 - 2023-02-05

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)

v0.12.0 - 2023-01-31

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

v0.11.0 - 2021-03-31

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

v0.10.0 - 2019-12-01

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.

v0.9.0 - 2018-05-08

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

v0.8.0 - 2016-04-09

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

Changes since v0.7.0 (a.k.a., v0.7.1)

  • 41fa9df Autoconf: add missing files in build system
  • ef73c06 Win32: Use WSAEWOULDBLOCK instead of EWOULDBLOCK on Win32
  • ceca348 CI: use travis-ci container based builds
  • 393e2df Lib: if channel_max is 0 use server's channel_max
  • ff47574 Lib: fix build on OpenBSD
  • 8429496...0ac6430 CI: enable CI on Mac OS X in travis-ci

Changes since v0.6.0 (a.k.a., v0.7.0)

  • 3379812 Tools: Add support for heartbeats
  • d7029db CI: Add continuous integration on Win32 using Appveyor
  • a5f7ffb Tests: only link against static libraries
  • a16ad45...9cf7a3b Lib: add support for EXTERNAL SASL method
  • 038a9ed Lib: fix incorrect parameters to WSAPoll on Win32
  • a240c69...14ae307 Lib: use non-blocking sockets internally
  • 8d1d5cc, 5498dc6 Lib: simplify timer/timeout logic
  • 61fc4e1 Lib: add support for heartbeat checks in blocking send calls
  • f462c0f...3546a70 Lib: Fix warnings on Win32
  • ba9d8ba...112a54d Lib: Add support for RabbitMQ auth failure extension
  • fb8e318 Lib: allow calling functions to override client-properties
  • 3ef3f5f examples: replace usleep() with nanosleep()
  • 9027a94 Lib: add AMQP_VERSION code
  • 9ee1718 Lib: fix res maybe returned uninitialized in amqp_merge_capbilities
  • 22a36db Lib: Fix SSL_connection status check
  • abbefd4 Lib: Fix issues with c89 compatiblity
  • 2bc1f9b...816cbfc Lib: perf improvements when sending small messages by hinting to the OS message boundaries.
  • be2e6dd...784a0e9 Lib: add select()-based timeout implementation
  • 91db548...8d77b4c CI: add ubsan, asan, and tsan CI builds

Changes since v0.5.2 (a.k.a., v0.6.0)

  • e1746f9 Tools: Enable support for SSL in tools.
  • 9626dd5 Lib: ABI CHANGE: enable support for auto_delete, internal flags to amqp_exchange_declare
  • ee54e27, 656f833 Lib: check for double-close in SSL/TCP socket impl
  • cf2760d Lib: allocate struct when method has no field.
  • 513ad4a Lib: add support for SANs in OpenSSL socket impl.
  • 5348c69 Lib: add functions to get negotiated frame_max and heartbeat parms.

Changes since v0.5.1 (a.k.a., v0.5.2)

  • fcdf0f8 Autoconf: check for htonll as declaration in a header file
  • 5790ec7 SSL: correctly report hostname verification errors.
  • d60c28c Build: disable OpenSSL deprecation warnings on OSX
  • 072191a Lib: include platform, version and copyright in AMQP handshake
  • 8b448c6 Examples: print message body in amqp[s]_listen[q] examples
  • 7188e5d Tools: Add flag to set prefetch for amqp-consume tool

Changes since v0.5.0 (a.k.a., v0.5.1)

Enhancements:

  • a566929 SSL: Add support for wildcards in hostname verification (Mike Steinert)
  • a78aa8a Lib: Use poll(2) instead of select(2) for timeouts on sockets.
  • 357bdb3 Lib: support for specifying frame and decoding pool sizes. (Mike Stitt)
  • 8956003 Lib: improve invalid frame detection code.

Bug fixes:

  • b852f84 Lib: Add missing amqp_get_server_properties() function.
  • 7001e82 Lib: Add missing ssize_t on Win32 (emazv72)
  • c2ce2cb Lib: Correctly specify WINVER on Win32 when unspecified.
  • fe844e4 CMake: specify -DHAVE_CONFIG_H in examples.
  • 932de5f Lib: correct time computation on Win32 (jestor)
  • 3e83192 HPUX: use gethrtime on HP-UX for timers.
  • cb1b44e HPUX: correct include location of sys/uio.h
  • 8ce585d Lib: incorrect OOM condition when 0-lenth exchange name is received.
  • c7716b8 CMake: correct htonll detection code on platforms defined with a macro.
  • 4dc4eda Lib: remove unused assignment.
  • 45302cf Lib: remove range-check of channel-ids.

Changes since v0.4.1 (a.k.a., v0.5.0):

Major changes:

  • Add amqp_get_broker_properties() function 5c7c40adc1
  • Remove distro-specific packaging a5749657ee
  • Add -x flag to amqp-consume utilty 1d9c5291ff
  • Add amqp_basic_nack() public API 9b168776fb
  • Add delivery mode constants to amqp.h 5f291ea772
  • Add support for connection.blocked/connection.unblocked methods ccbc24d270

Bug fixes:

  • f8c6cee749 Examples: Destroy amqp_envelope_t in consumer example
  • ac88db56d3 CMake: fix generation of librabbitmq.pc
  • d5b35afa40 CMake: fix missing POPT_INCLUDE_DIRS variable in tools/
  • 5ea6a0945a build: provide independent locations for x64 libs
  • fac34656c0 Doc: documentation fixes
  • 715901d675 Lib: Correct OpenSSL initialization under threaded conditions
  • ce64e57df8 Examples: Handle unexpected frames in amqp_consumer.c
  • bcda3e933d CMake: Use GnuInstallDirs to generate install dirs
  • 27245a4e15 Lib: correctly handle amqp_get_monotonic_timestamp on win32
  • 693662ef5b Tools: honor --persistent flag in publish utility
  • 01d9c3ca60 Doc: improve documentation in amqp_ssl_socket functions
  • 02d5c58ae4 autoconf: correct librabbitmq.pc generation
  • 1f4e0cc48b Doc: improve documentation in amqp_tcp_socket functions

Changes since v0.4.0:

Major changes:

  • Removed distro-specific packaging d285d01

Bug fixes:

  • a642602 FIX: destroy amqp_envelop_t object in consumer example
  • 860dd71 FIX: correct generation of librabbitmq.pc under CMake
  • bdda7ab FIX: amqp_socket_close() should not be exported from shlib
  • 24f4131 FIX: Use correct buf/len vars when re-starting send()

Changes since v0.3.0:

New Features/Enhancements:

  • amqp_login_with_properties() function to connect to a broker sending a properties table to the broker 21b124e #101
  • SSL support (Mike Steinert) 473c865 #17
  • amqp_simple_wait_frame_noblock() function variant to wait for a frame with a timeout f8cfc72 #119
  • Allow memory to be released on a per-channel basis with amqp_maybe_release_buffers_on_channel() 4a2d899 #5
  • Support for AMQP heartbeats while blocking in amqp_simple_wait_frame*() and amqp_basic_publish() daa0e66 aca5dc1
  • amqp_socket_open_noblock() for a non-blocking socket connection (Bogdan Padalko) 6ad770d
  • amqp_table_clone() to do a deep-copy of an amqp_table_t 08af83a
  • Add option to listen to multiple keys in amqp_consume tool (Brian Hammond) e6c256d
  • Add contributed OpenVMS build system 448ab68
  • Higher level APIs for consuming messages 33ebeed #8
  • Doxygen-based API documentation.
  • Many improvements to error-handling and reporting

Bug Fixes:

  • 24ffaf8 FIX: autotools was broken when dependency-tracking was disabled
  • 38e741b FIX: CMake XmlTo not found warning
  • 906f04f FIX: htonll redeclared on Win32 v8
  • 8e41603 FIX: SIGPIPE not disabled on OS X/BSD #102
  • 872ea49 FIX: Header issues with amqp.h on Mingw on Win32 (yoniyoni)
  • 0f1f75b FIX: potential memory leak in amqp_new_connection
  • c9f6312 FIX: missing va_end in amqp_login()/amqp_login_with_properties()
  • 7bb64e4 FIX: include amqp_tcp_socket.h in dpkg (Tim Stewart)
  • ba9d1f5 FIX: Report out of buffer space in amqp_table_encode()
  • 9496e10 FIX: Remove abort() on invalid parameter in amqp_send_frame()
  • f209420 FIX: Remote abort() in amqp_simple_wait_method()
  • f027518 FIX: Return error on socket lib init error
  • 0ae534a FIX: Correctly handle 0 return val from SSL_read()/SSL_write()
  • 22e41b8 FIX: Improve error handling in socket functions
  • 33c2353 FIX: Set state->socket to NULL after amqp_socket_close()
  • c83e728 FIX: Incorrect error code returned
  • 1a19879 FIX: redecl of int i in amqp_tcp_socket_writev()
  • 7477449 FIX: incorrect bit-shift in amqp_error_string2()
  • 2e37bb3 FIX: correctly handle amqp_get_sockfd() in amqp_simple_wait_frame()
  • 52a459b FIX: Don't delete state in amqp_tune_connection() on error
  • 01e38dd FIX: Correctly handle mach_timebase_info() failure
  • 34bffb7 FIX: Correctly disable SIGPIPE on platforms with SO_NOSIGPIPE
  • 3866433 FIX: Use correct number of bits in timer precision on MacOSX
  • b6a1dfe FIX: Squash OpenSSL deprecated warnings on MacOSX (Bogdan Padalko)
  • 7a217d5 FIX: Incorrect assert() in wait_frame_inner()
  • 7942af3 FIX: Correctly handle 0-length table in amqp_table_clone()
  • 157788e FIX: Correctly handle 0-length strings in amqp_basic_properties_clone()
  • 4eaf771 FIX: Correctly handle 0-length message body in amqp_read_message()
  • 59f943b FIX: Double-free SSL on connection failure
  • 7a451a4 FIX: amqp_open_socket() not defined