[RELEASE] c-ares 1.24.0

Daniel Stenberg daniel at haxx.se
Sun Dec 17 11:55:40 CET 2023


Hello friends!

c-ares version 1.24.0 is here. Get it as always from https://c-ares.org/

This is a feature and bugfix release.

Features:
  o Add support for IPv6 link-local DNS servers.  Nameserver formats can now
    accept the %iface suffix, and a new ares_get_servers_csv() function was
    added to return servers that can contain the link-local interface name. [3]

Changes:
  o Unbundle GoogleTest for test cases.  Package maintainers will now need to
    require GoogleTest (GMock) as a build dependency if building tests. New
    GoogleTest versions require C++14 or later. [6]
  o Replace nameserver parsing code to use new memory-safe functions. [1]
  o Replace the sortlist parser with new memory-safe functions. [5]
  o Various warning fixes and dead code removal.

Bug Fixes:
  o Old Linux versions require POSIX_C_SOURCE or _GNU_SOURCE to compile with
    thread safety support. [2]
  o A non-responsive DNS server that caused timeouts wouldn't increment the
    failure count, this would lead to other servers not being tried.
    Regression introduced in 1.22.0. [4]
  o Some projects that depend on c-ares expect invalid parameter option values
    passed into ares_init_options() to simply be ignored.  This behavior has
    been restored. [7]
  o On linux getrandom() can fail if the kernel doesn't support the syscall,
    fall back to another random source. [8]
  o ares_cancel() when performing ares_gethostbyname() or ares_getaddrinfo()
    with AF_UNSPEC, if called after one address class was returned but before
    the other address class, it would return ARES_SUCCESS rather than
    ARES_ECANCELLED. [9]


Thanks go to these friendly people for their efforts and contributions:
   Brad House (@bradh352)
   Daniel Stenberg (@bagder)
(2 contributors)

References to bug reports and discussions on issues:
  [1] = https://github.com/c-ares/c-ares/pull/643
  [2] = https://github.com/c-ares/c-ares/issues/644
  [3] = https://github.com/c-ares/c-ares/pull/646
  [4] = https://github.com/c-ares/c-ares/pull/650
  [5] = https://github.com/c-ares/c-ares/pull/653
  [6] = https://github.com/c-ares/c-ares/pull/655
  [7] = https://github.com/c-ares/c-ares/commit/c982bf4
  [8] = https://github.com/c-ares/c-ares/pull/661
  [9] = https://github.com/c-ares/c-ares/pull/663




More information about the c-ares mailing list