From 1d859b1ece05c4e227996424e317e82597ee7930 Mon Sep 17 00:00:00 2001 From: Brad House Date: Thu, 4 Apr 2024 08:09:30 -0400 Subject: [PATCH] MacOS/iOS: Apple does not allow users to configure DNS resolution timeouts or number of retries as Apple themselves uses dynamic/algorithmic values for their own resolver, so we should disable reading these static dummy values. --- src/lib/ares_sysconfig.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/lib/ares_sysconfig.c b/src/lib/ares_sysconfig.c index 47453451..9a2da416 100644 --- a/src/lib/ares_sysconfig.c +++ b/src/lib/ares_sysconfig.c @@ -957,23 +957,24 @@ static ares_status_t ares__init_sysconfig_libresolv(ares_sysconfig_t *sysconfig) if (res.ndots >= 0) { sysconfig->ndots = (size_t)res.ndots; } +/* Apple does not allow configuration of retry, so this is a static dummy + * value, ignore */ +# ifndef __APPLE__ if (res.retry > 0) { sysconfig->tries = (size_t)res.retry; } +# endif if (res.options & RES_ROTATE) { sysconfig->rotate = ARES_TRUE; } if (res.retrans > 0) { +/* Apple does not allow configuration of retrans, so this is a dummy value + * that is extremely high (5s) */ +# ifndef __APPLE__ if (res.retrans > 0) { sysconfig->timeout_ms = (unsigned int)res.retrans * 1000; } -# ifdef __APPLE__ - if (res.retry >= 0) { - sysconfig->timeout_ms /= - ((unsigned int)res.retry + 1) * - (unsigned int)(res.nscount > 0 ? res.nscount : 1); - } # endif }