PaulHowarth/Blog/2023-12-04

Monday 4th December 2023

Local Packages

  • Updated c-ares to 1.23.0:

  • This is a feature and bugfix release
  • Features:
    • Introduce optional (but on by default) thread-safety for the c-ares library; this has no API nor ABI implications

    • resolv.conf in modern systems uses attempts and timeouts options instead of the old retrans and retry options

    • Query caching support based on TTL of responses: can be enabled via ares_init_options() with ARES_OPT_QUERY_CACHE

  • Bug Fixes:
    • ares_init_options() for ARES_OPT_UDP_PORT and ARES_OPT_TCP_PORT accept the port in host byte order, but it was reading it as network byte order (regression introduced in 1.20.0)

    • ares_init_options() for ARES_FLAG_NOSEARCH was not being honoured for ares_getaddrinfo() or ares_gethostbyname() (regression introduced in 1.16.0)

    • Autotools MacOS and iOS version check was failing
    • Environment variables passed to c-ares are meant to be an override for system configuration (regression introduced in 1.22.0)

    • Spelling fixes as detected by codespell

    • The timeout returned by ares_timeout() was truncated to milliseconds but validated to microseconds, which could cause a user to attempt to process timeouts prior to the timeout actually expiring

    • CMake was not honouring CXXFLAGS passed in via the environment, which could cause compile and link errors with distribution hardening flags during packaging

    • Fix Windows UWP and Cygwin compilation
    • ares_set_servers_*() for legacy reasons needs to accept an empty server list and zero out all servers, which results in an inoperable channel and thus is only used in simulation testing, but we don't want to break users (regression introduced in 1.21.0)


Recent