Blame ChangeLog.md

Packit 12c978
# Change Log
Packit 12c978
## v0.9.0 - 2018-05-08
Packit 12c978
### Added:
Packit 12c978
- amqp-publish: added support for specifying headers via the -H flag
Packit 12c978
- Add support for specifying timeout for amqp_login calls via
Packit 12c978
  amqp_set_handshake_timeout
Packit 12c978
- Add support for specifying timeouts in RPC-style AMQP methods via
Packit 12c978
  amqp_set_rpc_timeout
Packit 12c978
- Add define for `AMQP_DEFAULT_VHOST`
Packit 12c978
- Support for SSL SNI
Packit 12c978
- Support for OpenSSL v1.1.0
Packit 12c978
Packit 12c978
### Changed:
Packit 12c978
- rabbitmq-c now requires Windows Vista or better
Packit 12c978
- rabbitmq-c enables TCP keep-alive by default on platforms that support it
Packit 12c978
- dropped support for compiling rabbitmq-c without threading support
Packit 12c978
- OpenSSL is no longer un-intialized automatically by default. OpenSSL can be
Packit 12c978
  explicitly initialized by calling amqp_initialize_ssl_library and
Packit 12c978
  uninitialized by calling amqp_uninitialize_ssl_library.
Packit 12c978
Packit 12c978
### Fixed:
Packit 12c978
- Correct bugs in processing of --url flag in tools (#364).
Packit 12c978
- Improve documentation on AMQP_SASL_METHOD_EXTERNAL (#349)
Packit 12c978
- Improve support for compiling under mingw-w64
Packit 12c978
- Better support for handing SIGPIPE on Linux over SSL (#401)
Packit 12c978
- Improve publish performance on Linux by not specifying MSG_MORE on last part
Packit 12c978
  of message.
Packit 12c978
- Fix connection logic where multiple hostnames won't be tried if connection to
Packit 12c978
  doesn't fail immediately (#430)
Packit 12c978
Packit 12c978
### Removed:
Packit 12c978
- autotools build system has been removed
Packit 12c978
- many duplicate amqps_* examples, they did not add a lot of value
Packit 12c978
Packit 12c978
Packit 12c978
## v0.8.0 - 2016-04-09
Packit 12c978
### Added:
Packit 12c978
- SSL: peer certificate and hostname validation can now be controlled separately
Packit 12c978
  using `amqp_ssl_socket_set_verify_peer` and
Packit 12c978
  `amqp_ssl_socket_set_verify_hostname`.
Packit 12c978
- SSL: the desire SSL version range can now be specified using the
Packit 12c978
  `amqp_ssl_socket_set_ssl_versions` function.
Packit 12c978
- Add flags to SSL examples on controlling hostname verification.
Packit 12c978
Packit 12c978
### Changed:
Packit 12c978
- SSL: SSLv2, and SSLv3 have been disabled by default.
Packit 12c978
- SSL: OpenSSL hostname validation has been improved.
Packit 12c978
- Win32 debug information is built with /Z7 on MSVC to embed debug info instead
Packit 12c978
  of using a .pdb
Packit 12c978
Packit 12c978
### Fixed:
Packit 12c978
- Connection failure results in hang on Win32 (#297, #346)
Packit 12c978
- Rabbitmq-c may block when attempting to close an SSL socket (#313)
Packit 12c978
- amqp_parse_url does not correctly initialize default parameters (#319)
Packit 12c978
- x509 objects are leaked in verify_hostname (#323)
Packit 12c978
- TCP_NOPUSH doesn't work under cygwin (#335)
Packit 12c978
Packit 12c978
### Deprecated
Packit 12c978
- SSL: `amqp_ssl_socket_set_verify` is being replaced by
Packit 12c978
  `amqp_ssl_socket_set_verify_peer` and `amqp_ssl_socket_set_verify_hostname`.
Packit 12c978
Packit 12c978
### Removed:
Packit 12c978
- OpenVMS build system and related files.
Packit 12c978
- Unmaintained PolarSSL, CyaSSL, and gnuTLS SSL backends
Packit 12c978
Packit 12c978
## Changes since v0.7.0 (a.k.a., v0.7.1)
Packit 12c978
- `41fa9df` Autoconf: add missing files in build system
Packit 12c978
- `ef73c06` Win32: Use WSAEWOULDBLOCK instead of EWOULDBLOCK on Win32
Packit 12c978
- `ceca348` CI: use travis-ci container based builds
Packit 12c978
- `393e2df` Lib: if channel_max is 0 use server's channel_max
Packit 12c978
- `ff47574` Lib: fix build on OpenBSD
Packit 12c978
- `8429496...0ac6430` CI: enable CI on Mac OS X in travis-ci
Packit 12c978
Packit 12c978
## Changes since v0.6.0 (a.k.a., v0.7.0)
Packit 12c978
- `3379812` Tools: Add support for heartbeats
Packit 12c978
- `d7029db` CI: Add continuous integration on Win32 using Appveyor
Packit 12c978
- `a5f7ffb` Tests: only link against static libraries
Packit 12c978
- `a16ad45...9cf7a3b`  Lib: add support for EXTERNAL SASL method
Packit 12c978
- `038a9ed` Lib: fix incorrect parameters to WSAPoll on Win32
Packit 12c978
- `a240c69...14ae307` Lib: use non-blocking sockets internally
Packit 12c978
- `8d1d5cc`, `5498dc6` Lib: simplify timer/timeout logic
Packit 12c978
- `61fc4e1` Lib: add support for heartbeat checks in blocking send calls
Packit 12c978
- `f462c0f...3546a70` Lib: Fix warnings on Win32
Packit 12c978
- `ba9d8ba...112a54d` Lib: Add support for RabbitMQ auth failure extension
Packit 12c978
- `fb8e318` Lib: allow calling functions to override client-properties
Packit 12c978
- `3ef3f5f` examples: replace usleep() with nanosleep()
Packit 12c978
- `9027a94` Lib: add AMQP_VERSION code
Packit 12c978
- `9ee1718` Lib: fix res maybe returned uninitialized in amqp_merge_capbilities
Packit 12c978
- `22a36db` Lib: Fix SSL_connection status check
Packit 12c978
- `abbefd4` Lib: Fix issues with c89 compatiblity
Packit 12c978
- `2bc1f9b...816cbfc` Lib: perf improvements when sending small messages by
Packit 12c978
  hinting to the OS message boundaries.
Packit 12c978
- `be2e6dd...784a0e9` Lib: add select()-based timeout implementation
Packit 12c978
- `91db548...8d77b4c` CI: add ubsan, asan, and tsan CI builds
Packit 12c978
Packit 12c978
## Changes since v0.5.2 (a.k.a., v0.6.0)
Packit 12c978
- `e1746f9` Tools: Enable support for SSL in tools.
Packit 12c978
- `9626dd5` Lib: ABI CHANGE: enable support for auto_delete, internal flags to
Packit 12c978
     amqp_exchange_declare
Packit 12c978
- `ee54e27`, `656f833` Lib: check for double-close in SSL/TCP socket impl
Packit 12c978
- `cf2760d` Lib: allocate struct when method has no field.
Packit 12c978
- `513ad4a` Lib: add support for SANs in OpenSSL socket impl.
Packit 12c978
- `5348c69` Lib: add functions to get negotiated frame_max and heartbeat parms.
Packit 12c978
Packit 12c978
## Changes since v0.5.1 (a.k.a., v0.5.2)
Packit 12c978
- `fcdf0f8` Autoconf: check for htonll as declaration in a header file
Packit 12c978
- `5790ec7` SSL: correctly report hostname verification errors.
Packit 12c978
- `d60c28c` Build: disable OpenSSL deprecation warnings on OSX
Packit 12c978
- `072191a` Lib: include platform, version and copyright in AMQP handshake
Packit 12c978
- `8b448c6` Examples: print message body in amqp[s]_listen[q] examples
Packit 12c978
- `7188e5d` Tools: Add flag to set prefetch for amqp-consume tool
Packit 12c978
Packit 12c978
## Changes since v0.5.0 (a.k.a., v0.5.1)
Packit 12c978
### Enhancements:
Packit 12c978
- `a566929` SSL: Add support for wildcards in hostname verification (Mike
Packit 12c978
  Steinert)
Packit 12c978
- `a78aa8a` Lib: Use poll(2) instead of select(2) for timeouts on sockets.
Packit 12c978
- `357bdb3` Lib: support for specifying frame and decoding pool sizes. (Mike
Packit 12c978
  Stitt)
Packit 12c978
- `8956003` Lib: improve invalid frame detection code.
Packit 12c978
Packit 12c978
### Bug fixes:
Packit 12c978
- `b852f84` Lib: Add missing amqp_get_server_properties() function.
Packit 12c978
- `7001e82` Lib: Add missing ssize_t on Win32 (emazv72)
Packit 12c978
- `c2ce2cb` Lib: Correctly specify WINVER on Win32 when unspecified.
Packit 12c978
- `fe844e4` CMake: specify -DHAVE_CONFIG_H in examples.
Packit 12c978
- `932de5f` Lib: correct time computation on Win32 (jestor)
Packit 12c978
- `3e83192` HPUX: use gethrtime on HP-UX for timers.
Packit 12c978
- `cb1b44e` HPUX: correct include location of sys/uio.h
Packit 12c978
- `8ce585d` Lib: incorrect OOM condition when 0-lenth exchange name is received.
Packit 12c978
- `c7716b8` CMake: correct htonll detection code on platforms defined with a
Packit 12c978
  macro.
Packit 12c978
- `4dc4eda` Lib: remove unused assignment.
Packit 12c978
- `45302cf` Lib: remove range-check of channel-ids.
Packit 12c978
Packit 12c978
Packit 12c978
## Changes since v0.4.1 (a.k.a., v0.5.0):
Packit 12c978
### Major changes:
Packit 12c978
- Add amqp_get_broker_properties() function 5c7c40adc1
Packit 12c978
- Remove distro-specific packaging a5749657ee
Packit 12c978
- Add -x flag to amqp-consume utilty 1d9c5291ff
Packit 12c978
- Add amqp_basic_nack() public API 9b168776fb
Packit 12c978
- Add delivery mode constants to amqp.h 5f291ea772
Packit 12c978
- Add support for connection.blocked/connection.unblocked methods ccbc24d270
Packit 12c978
Packit 12c978
### Bug fixes:
Packit 12c978
- `f8c6cee749` Examples: Destroy amqp_envelope_t in consumer example
Packit 12c978
- `ac88db56d3` CMake: fix generation of librabbitmq.pc
Packit 12c978
- `d5b35afa40` CMake: fix missing POPT_INCLUDE_DIRS variable in tools/
Packit 12c978
- `5ea6a0945a` build: provide independent locations for x64 libs
Packit 12c978
- `fac34656c0` Doc: documentation fixes
Packit 12c978
- `715901d675` Lib: Correct OpenSSL initialization under threaded conditions
Packit 12c978
- `ce64e57df8` Examples: Handle unexpected frames in amqp_consumer.c
Packit 12c978
- `bcda3e933d` CMake: Use GnuInstallDirs to generate install dirs
Packit 12c978
- `27245a4e15` Lib: correctly handle amqp_get_monotonic_timestamp on win32
Packit 12c978
- `693662ef5b` Tools: honor --persistent flag in publish utility
Packit 12c978
- `01d9c3ca60` Doc: improve documentation in amqp_ssl_socket functions
Packit 12c978
- `02d5c58ae4` autoconf: correct librabbitmq.pc generation
Packit 12c978
- `1f4e0cc48b` Doc: improve documentation in amqp_tcp_socket functions
Packit 12c978
Packit 12c978
## Changes since v0.4.0:
Packit 12c978
### Major changes:
Packit 12c978
- Removed distro-specific packaging d285d01
Packit 12c978
Packit 12c978
### Bug fixes:
Packit 12c978
- `a642602` FIX: destroy amqp_envelop_t object in consumer example
Packit 12c978
- `860dd71` FIX: correct generation of librabbitmq.pc under CMake
Packit 12c978
- `bdda7ab` FIX: amqp_socket_close() should not be exported from shlib
Packit 12c978
- `24f4131` FIX: Use correct buf/len vars when re-starting send()
Packit 12c978
Packit 12c978
## Changes since v0.3.0:
Packit 12c978
### New Features/Enhancements:
Packit 12c978
- `amqp_login_with_properties()` function to connect to a broker sending a
Packit 12c978
   properties table to the broker 21b124e #101
Packit 12c978
- SSL support (Mike Steinert) 473c865 #17
Packit 12c978
- `amqp_simple_wait_frame_noblock()` function variant to wait for a frame
Packit 12c978
   with a timeout f8cfc72 #119
Packit 12c978
- Allow memory to be released on a per-channel basis with
Packit 12c978
   `amqp_maybe_release_buffers_on_channel()` 4a2d899 #5
Packit 12c978
- Support for AMQP heartbeats while blocking in `amqp_simple_wait_frame*()`
Packit 12c978
   and `amqp_basic_publish()` daa0e66 aca5dc1
Packit 12c978
- `amqp_socket_open_noblock()` for a non-blocking socket connection
Packit 12c978
   (Bogdan Padalko) 6ad770d
Packit 12c978
- `amqp_table_clone()` to do a deep-copy of an amqp_table_t 08af83a
Packit 12c978
- Add option to listen to multiple keys in `amqp_consume` tool (Brian Hammond) e6c256d
Packit 12c978
- Add contributed OpenVMS build system 448ab68
Packit 12c978
- Higher level APIs for consuming messages 33ebeed #8
Packit 12c978
- Doxygen-based API documentation.
Packit 12c978
- Many improvements to error-handling and reporting
Packit 12c978
Packit 12c978
### Bug Fixes:
Packit 12c978
- `24ffaf8` FIX: autotools was broken when dependency-tracking was disabled
Packit 12c978
- `38e741b` FIX: CMake XmlTo not found warning
Packit 12c978
- `906f04f` FIX: htonll redeclared on Win32 v8
Packit 12c978
- `8e41603` FIX: SIGPIPE not disabled on OS X/BSD #102
Packit 12c978
- `872ea49` FIX: Header issues with amqp.h on Mingw on Win32 (yoniyoni)
Packit 12c978
- `0f1f75b` FIX: potential memory leak in amqp_new_connection
Packit 12c978
- `c9f6312` FIX: missing va_end in `amqp_login()`/`amqp_login_with_properties()`
Packit 12c978
- `7bb64e4` FIX: include amqp_tcp_socket.h in dpkg (Tim Stewart)
Packit 12c978
- `ba9d1f5` FIX: Report out of buffer space in `amqp_table_encode()`
Packit 12c978
- `9496e10` FIX: Remove `abort()` on invalid parameter in `amqp_send_frame()`
Packit 12c978
- `f209420` FIX: Remote `abort()` in `amqp_simple_wait_method()`
Packit 12c978
- `f027518` FIX: Return error on socket lib init error
Packit 12c978
- `0ae534a` FIX: Correctly handle 0 return val from `SSL_read()`/`SSL_write()`
Packit 12c978
- `22e41b8` FIX: Improve error handling in socket functions
Packit 12c978
- `33c2353` FIX: Set state->socket to NULL after `amqp_socket_close()`
Packit 12c978
- `c83e728` FIX: Incorrect error code returned
Packit 12c978
- `1a19879` FIX: redecl of int i in `amqp_tcp_socket_writev()`
Packit 12c978
- `7477449` FIX: incorrect bit-shift in `amqp_error_string2()`
Packit 12c978
- `2e37bb3` FIX: correctly handle `amqp_get_sockfd()` in `amqp_simple_wait_frame()`
Packit 12c978
- `52a459b` FIX: Don't delete state in `amqp_tune_connection()` on error
Packit 12c978
- `01e38dd` FIX: Correctly handle `mach_timebase_info()` failure
Packit 12c978
- `34bffb7` FIX: Correctly disable `SIGPIPE` on platforms with `SO_NOSIGPIPE`
Packit 12c978
- `3866433` FIX: Use correct number of bits in timer precision on MacOSX
Packit 12c978
- `b6a1dfe` FIX: Squash OpenSSL deprecated warnings on MacOSX (Bogdan Padalko)
Packit 12c978
- `7a217d5` FIX: Incorrect `assert()` in `wait_frame_inner()`
Packit 12c978
- `7942af3` FIX: Correctly handle 0-length table in `amqp_table_clone()`
Packit 12c978
- `157788e` FIX: Correctly handle 0-length strings in `amqp_basic_properties_clone()`
Packit 12c978
- `4eaf771` FIX: Correctly handle 0-length message body in `amqp_read_message()`
Packit 12c978
- `59f943b` FIX: Double-free SSL on connection failure
Packit 12c978
- `7a451a4` FIX: `amqp_open_socket()` not defined