PaulHowarth/Blog/2023-12-24

Sunday 24th December 2023

Local Packages

  • Updated c-ares to 1.24.0 (Fedora 30 onwards):

  • This is a feature and bugfix release
  • Features:
    • 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

  • Changes:
    • 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)

    • Replace nameserver parsing code to use new memory-safe functions
    • Replace the sortlist parser with new memory-safe functions

    • Various warning fixes and dead code removal
  • Bug Fixes:
    • Old Linux versions require POSIX_C_SOURCE or _GNU_SOURCE to compile with thread safety support

    • A non-responsive DNS server that caused timeouts wouldn't increment the failure count, which would lead to other servers not being tried (regression introduced in 1.22.0)
    • Some projects that depend on c-ares expect invalid parameter option values passed into ares_init_options() to simply be ignored; this behaviour has been restored

    • On linux, getrandom() can fail if the kernel doesn't support the syscall: fall back to another random source

    • 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, would return ARES_SUCCESS rather than ARES_ECANCELLED

  • Note: building without cmake is broken in this release (GH#670), which is why builds for releases older than Fedora 30 are unavailable


Recent