<pre style='margin:0'>
Ken (kencu) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/716024da0953ba766d759383640212bb0fa63665">https://github.com/macports/macports-ports/commit/716024da0953ba766d759383640212bb0fa63665</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 716024da095 c-ares: fix for older systems: patch from upstream
</span>716024da095 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 716024da0953ba766d759383640212bb0fa63665
</span>Author: Sergey Fedorov <barracuda@macos-powerpc.org>
AuthorDate: Thu Jun 13 04:36:21 2024 +0800

<span style='display:block; white-space:pre;color:#404040;'>    c-ares: fix for older systems: patch from upstream
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes: https://trac.macports.org/ticket/70208
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes: https://trac.macports.org/ticket/70207
</span>---
 net/c-ares/Portfile                             |   9 +-
 net/c-ares/files/patch-fix-build-pre-10.12.diff | 917 ++++++++++++++++++++++++
 2 files changed, 925 insertions(+), 1 deletion(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/c-ares/Portfile b/net/c-ares/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 66c2ade553d..ab72e584c7a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/net/c-ares/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/c-ares/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ PortGroup           cmake 1.1
</span> PortGroup           github 1.0
 
 github.setup        c-ares c-ares 1.30.0 v
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span> categories          net
 maintainers         {toby @tobypeterson}
 platforms           darwin
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -31,3 +31,10 @@ checksums           rmd160  2ee6649360899f4abb7777f0d9d6f1953ce2040f \
</span> 
 configure.args-append \
                     -DCARES_SHARED:BOOL=ON
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# This is an upstream patch. Drop with the next release.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/c-ares/c-ares/issues/782
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/c-ares/c-ares/issues/783
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patch.pre_args-replace \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    -p0 -p1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles-append   patch-fix-build-pre-10.12.diff
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/net/c-ares/files/patch-fix-build-pre-10.12.diff b/net/c-ares/files/patch-fix-build-pre-10.12.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..841ace11440
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/net/c-ares/files/patch-fix-build-pre-10.12.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,917 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 485b97601af741001aa62041d205d32b59133205 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Gregor Jasny <gjasny@googlemail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 8 Jun 2024 00:45:30 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 01/12] docs: distribute ares_dns_rec_type_tostr (#778)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix By: Gregor Jasny (@gjasny)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ docs/Makefile.inc | 1 +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/docs/Makefile.inc b/docs/Makefile.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 685978674..097bf2658 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/docs/Makefile.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/docs/Makefile.inc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -37,6 +37,7 @@ MANPAGES = ares_cancel.3         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ares_dns_record_rr_get.3                \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ares_dns_record_rr_get_const.3  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ares_dns_rec_type_fromstr.3             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ares_dns_rec_type_tostr.3               \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ares_dns_rec_type_t.3                   \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ares_dns_rr.3                           \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ares_dns_rr_get_addr.3          \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 5fbe31a8448eea0b37bf958f285e5cdb5408cd26 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Gregor Jasny <gjasny@googlemail.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Sat, 8 Jun 2024 01:00:50 +0200
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 02/12] fix some obvious errors reported by the CLion Project
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Analyzer (#779)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix By: Gregor Jasny (@gjasny)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/ares__buf.c          | 2 --
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/ares__htable_strvp.h | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/ares_getnameinfo.c   | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test/ares-test-live.cc       | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ test/ares-test-misc.cc       | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 5 files changed, 4 insertions(+), 6 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/ares__buf.c b/src/lib/ares__buf.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2203662fa..5292e1bdc 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/ares__buf.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/ares__buf.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -135,8 +135,6 @@ void ares__buf_reclaim(ares__buf_t *buf)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (buf->tag_offset != SIZE_MAX) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     buf->tag_offset -= prefix_size;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  return;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static ares_status_t ares__buf_ensure_space(ares__buf_t *buf,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/ares__htable_strvp.h b/src/lib/ares__htable_strvp.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 25dd2b907..878c71869 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/ares__htable_strvp.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/ares__htable_strvp.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -115,4 +115,4 @@ size_t      ares__htable_strvp_num_keys(const ares__htable_strvp_t *htable);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*! @} */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif /* __ARES__HTABLE_STVP_H */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif /* __ARES__HTABLE_STRVP_H */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/ares_getnameinfo.c b/src/lib/ares_getnameinfo.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d4cf58ea5..57c6ddaf9 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/ares_getnameinfo.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/ares_getnameinfo.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -82,7 +82,7 @@ static char *lookup_service(unsigned short port, unsigned int flags, char *buf,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                             size_t buflen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef HAVE_STRUCT_SOCKADDR_IN6_SIN6_SCOPE_ID
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static void append_scopeid(const struct sockaddr_in6 *addr6,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                           unsigned int scopeid, char *buf, size_t buflen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                           unsigned int flags, char *buf, size_t buflen);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static char *ares_striendstr(const char *s1, const char *s2);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/test/ares-test-live.cc b/test/ares-test-live.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9e5c4c357..88d2153cb 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/test/ares-test-live.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/test/ares-test-live.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -807,7 +807,7 @@ TEST_F(DefaultChannelTest, LiveSetServersPorts) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   server2.family = AF_INET;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   server2.addr.addr4.s_addr = htonl(0x02030405);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   server2.udp_port = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  server2.tcp_port = 0;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  server2.tcp_port = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EXPECT_EQ(ARES_ENODATA, ares_set_servers_ports(nullptr, &server1));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   // Change while pending will requeue any requests to new servers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/test/ares-test-misc.cc b/test/ares-test-misc.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e680481a8..6d6c691e4 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/test/ares-test-misc.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/test/ares-test-misc.cc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -104,7 +104,7 @@ TEST_F(DefaultChannelTest, SetServersPorts) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   server2.family = AF_INET;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   server2.addr.addr4.s_addr = htonl(0x02030405);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   server2.udp_port = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  server2.tcp_port = 0;;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  server2.tcp_port = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EXPECT_EQ(ARES_ENODATA, ares_set_servers_ports(nullptr, &server1));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   EXPECT_EQ(ARES_SUCCESS, ares_set_servers_ports(channel_, &server1));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 540389215c1441596fb59fe6da114ae093415f8b Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Brad House <brad@brad-house.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 12 Jun 2024 07:22:10 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 03/12] MacOS - legacy versions: add fcntl.h to prevent
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ undefined symbols for config change detection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/ares_event_configchg.c | 1 +
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/ares_event_configchg.c b/src/lib/ares_event_configchg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c7bc9ffd5..e2e7ef56e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/ares_event_configchg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/ares_event_configchg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -260,6 +260,7 @@ ares_status_t ares_event_configchg_init(ares_event_configchg_t **configchg,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include <unistd.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include <notify.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include <dlfcn.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  include <fcntl.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ struct ares_event_configchg {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   int fd;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 035ec0b8dbf4b0774d37075f332896459213e0f8 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Brad House <brad@brad-house.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 12 Jun 2024 07:33:03 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 04/12] MacOS - legacy: back off to older upstream dnsinfo.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+MacOS 10.8-10.11 won't compile with dnsinfo.h from configd-1109.140.1,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+back off to configd-963.50.8 which still works with newer MacOS verions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fixes Issue: #783
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Fix By: Brad House (@bradh352)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/thirdparty/apple/dnsinfo.h            |  12 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/thirdparty/apple/dnsinfo.h-1109.140.1 | 128 ++++++++++++++++++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3 files changed, 143 insertions(+), 7 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ create mode 100644 src/lib/thirdparty/apple/dnsinfo.h-1109.140.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/thirdparty/apple/dnsinfo.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/thirdparty/apple/dnsinfo.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * Copyright (c) 2004-2006, 2008, 2009, 2011-2013, 2015-2018 Apple Inc. All rights reserved.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Copyright (c) 2004-2006, 2008, 2009, 2011-2013, 2015-2017 Apple Inc. All rights reserved.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * @APPLE_LICENSE_HEADER_START@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -28,7 +28,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * These routines provide access to the systems DNS configuration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <os/availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <Availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/cdefs.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <stdint.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -111,17 +111,17 @@ __BEGIN_DECLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * DNS configuration access APIs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-dns_configuration_notify_key    (void)                            API_AVAILABLE(macos(10.4), ios(2.0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++dns_configuration_notify_key    (void)                            __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_2_0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dns_config_t *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-dns_configuration_copy            (void)                          API_AVAILABLE(macos(10.4), ios(2.0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++dns_configuration_copy            (void)                          __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_2_0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-dns_configuration_free            (dns_config_t   *config)        API_AVAILABLE(macos(10.4), ios(2.0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++dns_configuration_free            (dns_config_t   *config)        __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_2_0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _dns_configuration_ack            (dns_config_t   *config,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                           const char     *bundle_id)     API_AVAILABLE(macos(10.8), ios(6.0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                           const char     *bundle_id)     __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __END_DECLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/thirdparty/apple/dnsinfo.h-1109.140.1 b/src/lib/thirdparty/apple/dnsinfo.h-1109.140.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+new file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 000000000..d5a0e70e2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/thirdparty/apple/dnsinfo.h-1109.140.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -0,0 +1,128 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Copyright (c) 2004-2006, 2008, 2009, 2011-2013, 2015-2018 Apple Inc. All rights reserved.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * @APPLE_LICENSE_HEADER_START@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * This file contains Original Code and/or Modifications of Original Code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * as defined in and that are subject to the Apple Public Source License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Version 2.0 (the 'License'). You may not use this file except in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * compliance with the License. Please obtain a copy of the License at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * http://www.opensource.apple.com/apsl/ and read it before using this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * file.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * The Original Code and all software distributed under the License are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Please see the License for the specific language governing rights and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * limitations under the License.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * @APPLE_LICENSE_HEADER_END@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#ifndef __DNSINFO_H__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define __DNSINFO_H__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * These routines provide access to the systems DNS configuration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <os/availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <sys/cdefs.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <stdint.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <sys/socket.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <netinet/in.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define   DNSINFO_VERSION         20170629
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DEFAULT_SEARCH_ORDER    200000   /* search order for the "default" resolver domain name */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define   DNS_PTR(type, name)                             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  union {                                         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          type            name;                   \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          uint64_t        _ ## name ## _p;        \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define   DNS_VAR(type, name)                             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  type    name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#pragma pack(4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  struct in_addr  address;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  struct in_addr  mask;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++} dns_sortaddr_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#pragma pack()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#pragma pack(4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_PTR(char *,                 domain);        /* domain */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(int32_t,                n_nameserver);  /* # nameserver */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_PTR(struct sockaddr **,     nameserver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(uint16_t,               port);          /* port (in host byte order) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(int32_t,                n_search);      /* # search */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_PTR(char **,                search);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(int32_t,                n_sortaddr);    /* # sortaddr */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_PTR(dns_sortaddr_t **,      sortaddr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_PTR(char *,                 options);       /* options */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(uint32_t,               timeout);       /* timeout */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(uint32_t,               search_order);  /* search_order */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(uint32_t,               if_index);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(uint32_t,               flags);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(uint32_t,               reach_flags);   /* SCNetworkReachabilityFlags */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(uint32_t,               service_identifier);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_PTR(char *,                 cid);           /* configuration identifer */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_PTR(char *,                 if_name);       /* if_index interface name */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++} dns_resolver_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#pragma pack()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DNS_RESOLVER_FLAGS_REQUEST_A_RECORDS      0x0002          /* always requesting for A dns records in queries */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DNS_RESOLVER_FLAGS_REQUEST_AAAA_RECORDS   0x0004          /* always requesting for AAAA dns records in queries */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define   DNS_RESOLVER_FLAGS_REQUEST_ALL_RECORDS  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  (DNS_RESOLVER_FLAGS_REQUEST_A_RECORDS | DNS_RESOLVER_FLAGS_REQUEST_AAAA_RECORDS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DNS_RESOLVER_FLAGS_SCOPED         0x1000          /* configuration is for scoped questions */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DNS_RESOLVER_FLAGS_SERVICE_SPECIFIC       0x2000          /* configuration is service-specific */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DNS_RESOLVER_FLAGS_SUPPLEMENTAL           0x4000          /* supplemental match configuration */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#pragma pack(4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++typedef struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(int32_t,                n_resolver);            /* resolver configurations */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_PTR(dns_resolver_t **,      resolver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(int32_t,                n_scoped_resolver);     /* "scoped" resolver configurations */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_PTR(dns_resolver_t **,      scoped_resolver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(uint64_t,               generation);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(int32_t,                n_service_specific_resolver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_PTR(dns_resolver_t **,      service_specific_resolver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(uint32_t,               version);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++} dns_config_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#pragma pack()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__BEGIN_DECLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * DNS configuration access APIs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++const char *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++dns_configuration_notify_key    (void)                            API_AVAILABLE(macos(10.4), ios(2.0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++dns_config_t *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++dns_configuration_copy            (void)                          API_AVAILABLE(macos(10.4), ios(2.0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++dns_configuration_free            (dns_config_t   *config)        API_AVAILABLE(macos(10.4), ios(2.0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++_dns_configuration_ack            (dns_config_t   *config,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                           const char     *bundle_id)     API_AVAILABLE(macos(10.8), ios(6.0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++__END_DECLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif    /* __DNSINFO_H__ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From fbbaa46a1ff2dc32112a03b81b68e28d97fb3b21 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Brad House <brad@brad-house.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 12 Jun 2024 07:36:24 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 05/12] no reason to keep around other dnsinfo.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/thirdparty/apple/dnsinfo.h-1109.140.1 | 128 ------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 128 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ delete mode 100644 src/lib/thirdparty/apple/dnsinfo.h-1109.140.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/thirdparty/apple/dnsinfo.h-1109.140.1 b/src/lib/thirdparty/apple/dnsinfo.h-1109.140.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+deleted file mode 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index d5a0e70e2..000000000
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/thirdparty/apple/dnsinfo.h-1109.140.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,128 +0,0 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * Copyright (c) 2004-2006, 2008, 2009, 2011-2013, 2015-2018 Apple Inc. All rights reserved.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * @APPLE_LICENSE_HEADER_START@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * This file contains Original Code and/or Modifications of Original Code
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * as defined in and that are subject to the Apple Public Source License
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * Version 2.0 (the 'License'). You may not use this file except in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * compliance with the License. Please obtain a copy of the License at
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * http://www.opensource.apple.com/apsl/ and read it before using this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * file.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * The Original Code and all software distributed under the License are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * Please see the License for the specific language governing rights and
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * limitations under the License.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * @APPLE_LICENSE_HEADER_END@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifndef __DNSINFO_H__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define __DNSINFO_H__
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * These routines provide access to the systems DNS configuration
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <os/availability.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <sys/cdefs.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <stdint.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <sys/socket.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#include <netinet/in.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define   DNSINFO_VERSION         20170629
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define DEFAULT_SEARCH_ORDER    200000   /* search order for the "default" resolver domain name */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define   DNS_PTR(type, name)                             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  union {                                         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          type            name;                   \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-          uint64_t        _ ## name ## _p;        \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define   DNS_VAR(type, name)                             \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  type    name
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#pragma pack(4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-typedef struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  struct in_addr  address;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  struct in_addr  mask;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-} dns_sortaddr_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#pragma pack()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#pragma pack(4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-typedef struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_PTR(char *,                 domain);        /* domain */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(int32_t,                n_nameserver);  /* # nameserver */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_PTR(struct sockaddr **,     nameserver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(uint16_t,               port);          /* port (in host byte order) */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(int32_t,                n_search);      /* # search */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_PTR(char **,                search);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(int32_t,                n_sortaddr);    /* # sortaddr */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_PTR(dns_sortaddr_t **,      sortaddr);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_PTR(char *,                 options);       /* options */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(uint32_t,               timeout);       /* timeout */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(uint32_t,               search_order);  /* search_order */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(uint32_t,               if_index);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(uint32_t,               flags);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(uint32_t,               reach_flags);   /* SCNetworkReachabilityFlags */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(uint32_t,               service_identifier);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_PTR(char *,                 cid);           /* configuration identifer */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_PTR(char *,                 if_name);       /* if_index interface name */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-} dns_resolver_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#pragma pack()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define DNS_RESOLVER_FLAGS_REQUEST_A_RECORDS      0x0002          /* always requesting for A dns records in queries */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define DNS_RESOLVER_FLAGS_REQUEST_AAAA_RECORDS   0x0004          /* always requesting for AAAA dns records in queries */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define   DNS_RESOLVER_FLAGS_REQUEST_ALL_RECORDS  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  (DNS_RESOLVER_FLAGS_REQUEST_A_RECORDS | DNS_RESOLVER_FLAGS_REQUEST_AAAA_RECORDS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define DNS_RESOLVER_FLAGS_SCOPED         0x1000          /* configuration is for scoped questions */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define DNS_RESOLVER_FLAGS_SERVICE_SPECIFIC       0x2000          /* configuration is service-specific */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define DNS_RESOLVER_FLAGS_SUPPLEMENTAL           0x4000          /* supplemental match configuration */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#pragma pack(4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-typedef struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(int32_t,                n_resolver);            /* resolver configurations */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_PTR(dns_resolver_t **,      resolver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(int32_t,                n_scoped_resolver);     /* "scoped" resolver configurations */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_PTR(dns_resolver_t **,      scoped_resolver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(uint64_t,               generation);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(int32_t,                n_service_specific_resolver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_PTR(dns_resolver_t **,      service_specific_resolver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(uint32_t,               version);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-} dns_config_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#pragma pack()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-__BEGIN_DECLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-/*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * DNS configuration access APIs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-const char *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-dns_configuration_notify_key    (void)                            API_AVAILABLE(macos(10.4), ios(2.0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-dns_config_t *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-dns_configuration_copy            (void)                          API_AVAILABLE(macos(10.4), ios(2.0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-dns_configuration_free            (dns_config_t   *config)        API_AVAILABLE(macos(10.4), ios(2.0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-_dns_configuration_ack            (dns_config_t   *config,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                           const char     *bundle_id)     API_AVAILABLE(macos(10.8), ios(6.0));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-__END_DECLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#endif    /* __DNSINFO_H__ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From e64772f3b4a68dd9a6250036d1c47848f630da7b Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Brad House <brad@brad-house.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 12 Jun 2024 08:55:05 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 06/12] MacOS legacy: Attempt to support last MacOS PPC release
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ - 10.6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/ares_sysconfig_mac.c       | 13 +++++++++++--
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/thirdparty/apple/dnsinfo.h | 30 ++++++++++++------------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 3 files changed, 37 insertions(+), 28 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/ares_sysconfig_mac.c b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 302bd0d34..e15bcf811 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -53,6 +53,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include <arpa/inet.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include "thirdparty/apple/dnsinfo.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include <SystemConfiguration/SCNetworkConfiguration.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include "ares.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include "ares_private.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -148,6 +149,7 @@ static ares_status_t read_resolver(const dns_resolver_t *resolver,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return ARES_SUCCESS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 /* MacOS 10.8 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Check to see if DNS server should be used, base this on if the server is
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * reachable or can be reachable automatically if we send traffic that
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    * direction. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -156,6 +158,7 @@ static ares_status_t read_resolver(const dns_resolver_t *resolver,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+          kSCNetworkReachabilityFlagsConnectionOnTraffic))) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return ARES_SUCCESS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* NOTE: it doesn't look like resolver->flags is relevant */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -219,7 +222,8 @@ static ares_status_t read_resolver(const dns_resolver_t *resolver,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    *   - resolver->timeout appears unused, always 0, so we ignore this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    *   - resolver->service_identifier doesn't appear relevant to us
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    *   - resolver->cid also isn't relevant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   *   - resolver->if_index we don't need, if_name is used instead.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *   - resolver->if_name we won't use since it isn't available in MacOS 10.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *     or earlier, use resolver->if_index instead to then lookup the name.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* XXX: resolver->search_order appears like it might be relevant, we might
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -233,6 +237,8 @@ static ares_status_t read_resolver(const dns_resolver_t *resolver,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     struct ares_addr       addr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unsigned short         addrport;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const struct sockaddr *sockaddr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    char                   if_name_str[256] = "";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const char            *if_name;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /* UBSAN alignment workaround to fetch memory address */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     memcpy(&sockaddr, resolver->nameserver + i, sizeof(sockaddr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -262,8 +268,11 @@ static ares_status_t read_resolver(const dns_resolver_t *resolver,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (addrport == 0) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       addrport = port;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if_name = ares__if_indextoname(resolver->if_index, if_name_str,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                   sizeof(if_name_str));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     status = ares__sconfig_append(&sysconfig->sconfig, &addr, addrport,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                                  addrport, resolver->if_name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                                  addrport, if_name);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (status != ARES_SUCCESS) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       return status;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/thirdparty/apple/dnsinfo.h b/src/lib/thirdparty/apple/dnsinfo.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 68110b2eb..d92a1d803 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/thirdparty/apple/dnsinfo.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/thirdparty/apple/dnsinfo.h
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,5 +1,5 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ /*
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+- * Copyright (c) 2004-2006, 2008, 2009, 2011-2013, 2015-2017 Apple Inc. All rights reserved.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++ * Copyright (c) 2004-2006, 2008, 2009, 2011 Apple Inc. All rights reserved.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  * @APPLE_LICENSE_HEADER_START@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+  *
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -34,8 +34,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/types.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <sys/socket.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <netinet/in.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define   DNSINFO_VERSION         20170629
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define   DNSINFO_VERSION         20111104
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #define DEFAULT_SEARCH_ORDER    200000   /* search order for the "default" resolver domain name */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -72,23 +73,17 @@ typedef struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DNS_VAR(uint32_t,               search_order);  /* search_order */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DNS_VAR(uint32_t,               if_index);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DNS_VAR(uint32_t,               flags);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED < 1080 /* MacOS 10.8 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(uint32_t,               reserved[6]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DNS_VAR(uint32_t,               reach_flags);   /* SCNetworkReachabilityFlags */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(uint32_t,               service_identifier);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_PTR(char *,                 cid);           /* configuration identifer */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_PTR(char *,                 if_name);       /* if_index interface name */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(uint32_t,               reserved[5]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } dns_resolver_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma pack()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define DNS_RESOLVER_FLAGS_REQUEST_A_RECORDS      0x0002          /* always requesting for A dns records in queries */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define DNS_RESOLVER_FLAGS_REQUEST_AAAA_RECORDS   0x0004          /* always requesting for AAAA dns records in queries */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define   DNS_RESOLVER_FLAGS_REQUEST_ALL_RECORDS  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  (DNS_RESOLVER_FLAGS_REQUEST_A_RECORDS | DNS_RESOLVER_FLAGS_REQUEST_AAAA_RECORDS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define DNS_RESOLVER_FLAGS_SCOPED         0x1000          /* configuration is for scoped questions */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define DNS_RESOLVER_FLAGS_SERVICE_SPECIFIC       0x2000          /* configuration is service-specific */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#define DNS_RESOLVER_FLAGS_SUPPLEMENTAL           0x4000          /* supplemental match configuration */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define DNS_RESOLVER_FLAGS_SCOPED 1               /* configuration is for scoped questions */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma pack(4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -97,10 +92,7 @@ typedef struct {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DNS_PTR(dns_resolver_t **,      resolver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DNS_VAR(int32_t,                n_scoped_resolver);     /* "scoped" resolver configurations */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   DNS_PTR(dns_resolver_t **,      scoped_resolver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(uint64_t,               generation);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(int32_t,                n_service_specific_resolver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_PTR(dns_resolver_t **,      service_specific_resolver);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  DNS_VAR(uint32_t,               version);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  DNS_VAR(uint32_t,               reserved[5]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } dns_config_t;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma pack()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -119,9 +111,11 @@ dns_configuration_copy                (void)                          __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ dns_configuration_free            (dns_config_t   *config)        __OSX_AVAILABLE_STARTING(__MAC_10_4,__IPHONE_2_0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ void
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ _dns_configuration_ack            (dns_config_t   *config,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            const char     *bundle_id)     __OSX_AVAILABLE_STARTING(__MAC_10_8, __IPHONE_6_0);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ __END_DECLS
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 51f589114f0c5c3cfb88e07919ffa366d8b95665 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Brad House <brad@brad-house.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 12 Jun 2024 09:06:38 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 07/12] MacOS Legacy: omit unneeded header on old macos
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/ares_sysconfig_mac.c | 4 +++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 3 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/ares_sysconfig_mac.c b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e15bcf811..905c07198 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -52,8 +52,10 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include <dlfcn.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include <arpa/inet.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include "thirdparty/apple/dnsinfo.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#  include <SystemConfiguration/SCNetworkConfiguration.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include <AvailabilityMacros.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 /* MacOS 10.8 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#    include <SystemConfiguration/SCNetworkConfiguration.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#  endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include "ares.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #  include "ares_private.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 894cdf16ccfe54b1b543d3ffe5bd180cc2cfc33a Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Brad House <brad@brad-house.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 12 Jun 2024 14:43:09 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 08/12] MacOS Legacy: try to work with 10.5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/ares_sysconfig_mac.c | 54 ++++++++++++++++++++++++++++--------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 43 insertions(+), 11 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/ares_sysconfig_mac.c b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 905c07198..19213741e 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -80,8 +80,16 @@ static void dnsinfo_destroy(dnsinfo_t *dnsinfo)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ static ares_status_t dnsinfo_init(dnsinfo_t **dnsinfo_out)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  dnsinfo_t    *dnsinfo = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ares_status_t status  = ARES_SUCCESS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  dnsinfo_t    *dnsinfo       = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ares_status_t status        = ARES_SUCCESS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  size_t        i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const char   *searchlibs[]  = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    "/usr/lib/libSystem.dylib",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    "SystemConfiguration.framework/SystemConfiguration",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    "/System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    "/System/Library/Frameworks/SystemConfiguration.framework/Versions/Current/SystemConfiguration",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (dnsinfo_out == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     status = ARES_EFORMERR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -91,22 +99,46 @@ static ares_status_t dnsinfo_init(dnsinfo_t **dnsinfo_out)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *dnsinfo_out = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   dnsinfo = ares_malloc_zero(sizeof(*dnsinfo));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (dnsinfo == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     status = ARES_ENOMEM;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     goto done;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  dnsinfo->handle = dlopen("/usr/lib/libSystem.dylib", RTLD_LAZY | RTLD_NOLOAD);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (dnsinfo->handle == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    status = ARES_ESERVFAIL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    goto done;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for (i=0; searchlibs[i] != NULL; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    dnsinfo->handle = dlopen(searchlibs[i], RTLD_LAZY | RTLD_NOLOAD);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (dnsinfo->handle == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      /* Fail, loop */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    dnsinfo->dns_configuration_copy =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      dlsym(dnsinfo->handle, "dns_configuration_copy");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (dnsinfo->dns_configuration_copy == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      /* Might be needed for PPC ABI */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      dnsinfo->dns_configuration_copy =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        dlsym(dnsinfo->handle, "_dns_configuration_copy");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    dnsinfo->dns_configuration_free =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      dlsym(dnsinfo->handle, "dns_configuration_free");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (dnsinfo->dns_configuration_free == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      /* Might be needed for PPC ABI */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      dnsinfo->dns_configuration_free =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        dlsym(dnsinfo->handle, "_dns_configuration_free");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (dnsinfo->dns_configuration_copy != NULL &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        dnsinfo->dns_configuration_free != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* Fail, loop */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    dlclose(dnsinfo->handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    dnsinfo->handle = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  dnsinfo->dns_configuration_copy =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    dlsym(dnsinfo->handle, "dns_configuration_copy");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  dnsinfo->dns_configuration_free =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    dlsym(dnsinfo->handle, "dns_configuration_free");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (dnsinfo->dns_configuration_copy == NULL ||
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       dnsinfo->dns_configuration_free == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 699e52f148eecee0d328048f362372db5d9c759f Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Brad House <brad@brad-house.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 12 Jun 2024 14:45:30 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 09/12] MacOS Legacy: get rid of RTLD_NOLOAD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/ares_sysconfig_mac.c | 2 +-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/ares_sysconfig_mac.c b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 19213741e..f6bfe1232 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -105,7 +105,7 @@ static ares_status_t dnsinfo_init(dnsinfo_t **dnsinfo_out)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   for (i=0; searchlibs[i] != NULL; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    dnsinfo->handle = dlopen(searchlibs[i], RTLD_LAZY | RTLD_NOLOAD);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    dnsinfo->handle = dlopen(searchlibs[i], RTLD_LAZY /* | RTLD_NOLOAD */);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (dnsinfo->handle == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       /* Fail, loop */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 495fdec7d002a83442f303157af082666c0ee10c Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Brad House <brad@brad-house.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 12 Jun 2024 15:09:59 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 10/12] MacOS Legacy: simplify, don't forget change monitoring
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/ares_event_configchg.c | 37 ++++++++++++++++++++++++----------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/ares_sysconfig_mac.c   | 14 -------------
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 2 files changed, 26 insertions(+), 25 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/ares_event_configchg.c b/src/lib/ares_event_configchg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e2e7ef56e..94eb7b787 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/ares_event_configchg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/ares_event_configchg.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -329,11 +329,17 @@ static void ares_event_configchg_cb(ares_event_thread_t *e, ares_socket_t fd,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ares_status_t ares_event_configchg_init(ares_event_configchg_t **configchg,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                         ares_event_thread_t     *e)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  ares_status_t status                               = ARES_SUCCESS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  void         *handle                               = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  const char *(*pdns_configuration_notify_key)(void) = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  const char *notify_key                             = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  int         flags;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  ares_status_t   status                               = ARES_SUCCESS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  void           *handle                               = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const char   *(*pdns_configuration_notify_key)(void) = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const char     *notify_key                           = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  int             flags;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  size_t          i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  const char     *searchlibs[]                         = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    "/usr/lib/libSystem.dylib",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    "/System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   *configchg = ares_malloc_zero(sizeof(**configchg));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (*configchg == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -341,13 +347,22 @@ ares_status_t ares_event_configchg_init(ares_event_configchg_t **configchg,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Load symbol as it isn't normally public */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  handle = dlopen("/usr/lib/libSystem.dylib", RTLD_LAZY | RTLD_NOLOAD);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if (handle == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    status = ARES_ESERVFAIL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    goto done;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  for (i=0; searchlibs[i] != NULL; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    handle = dlopen(searchlibs[i], RTLD_LAZY);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (handle == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      /* Fail, loop! */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      continue;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  pdns_configuration_notify_key = dlsym(handle, "dns_configuration_notify_key");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    pdns_configuration_notify_key = dlsym(handle, "dns_configuration_notify_key");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    if (pdns_configuration_notify_key != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    /* Fail, loop! */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    dlclose(handle);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    handle = NULL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (pdns_configuration_notify_key == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     status = ARES_ESERVFAIL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/ares_sysconfig_mac.c b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f6bfe1232..8d7512934 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -85,9 +85,7 @@ static ares_status_t dnsinfo_init(dnsinfo_t **dnsinfo_out)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   size_t        i;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   const char   *searchlibs[]  = {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "/usr/lib/libSystem.dylib",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "SystemConfiguration.framework/SystemConfiguration",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     "/System/Library/Frameworks/SystemConfiguration.framework/SystemConfiguration",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    "/System/Library/Frameworks/SystemConfiguration.framework/Versions/Current/SystemConfiguration",
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     NULL
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   };
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -114,21 +112,9 @@ static ares_status_t dnsinfo_init(dnsinfo_t **dnsinfo_out)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     dnsinfo->dns_configuration_copy =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       dlsym(dnsinfo->handle, "dns_configuration_copy");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (dnsinfo->dns_configuration_copy == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      /* Might be needed for PPC ABI */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      dnsinfo->dns_configuration_copy =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        dlsym(dnsinfo->handle, "_dns_configuration_copy");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     dnsinfo->dns_configuration_free =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       dlsym(dnsinfo->handle, "dns_configuration_free");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    if (dnsinfo->dns_configuration_free == NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      /* Might be needed for PPC ABI */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      dnsinfo->dns_configuration_free =
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        dlsym(dnsinfo->handle, "_dns_configuration_free");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (dnsinfo->dns_configuration_copy != NULL &&
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         dnsinfo->dns_configuration_free != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From b07f6826c4687b6ca49b0036de62c6060daf71db Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Brad House <brad@brad-house.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 12 Jun 2024 15:16:42 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 11/12] remove some excessive UBSAN workaround
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/ares_sysconfig_mac.c | 6 +-----
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 1 insertion(+), 5 deletions(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/ares_sysconfig_mac.c b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 8d7512934..0e62c4818 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -309,7 +309,6 @@ static ares_status_t read_resolvers(dns_resolver_t **resolvers, int nresolvers,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   for (i = 0; status == ARES_SUCCESS && i < nresolvers; i++) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const dns_resolver_t *resolver_ptr;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    dns_resolver_t        resolver;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     /* UBSAN doesn't like that this is unaligned, lets use memcpy to get the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      * address.  Equivalent to:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -317,10 +316,7 @@ static ares_status_t read_resolvers(dns_resolver_t **resolvers, int nresolvers,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+      */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     memcpy(&resolver_ptr, resolvers + i, sizeof(resolver_ptr));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    /* UBSAN. If the pointer is misaligned, try to use memcpy to get the data
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-     * into a new structure that is hopefully aligned properly */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    memcpy(&resolver, resolver_ptr, sizeof(resolver));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    status = read_resolver(&resolver, sysconfig);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    status = read_resolver(resolver_ptr, sysconfig);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   return status;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From 1e505cc45781071801c7bc8045013d4f2cf447d7 Mon Sep 17 00:00:00 2001
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+From: Brad House <brad@brad-house.com>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Date: Wed, 12 Jun 2024 16:21:26 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+Subject: [PATCH 12/12] MacOS legacy: resovler->domain changed meaning around
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ MacOS 10.8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+---
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ src/lib/ares_sysconfig_mac.c | 7 ++++++-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 1 file changed, 6 insertions(+), 1 deletion(-)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/lib/ares_sysconfig_mac.c b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 0e62c4818..6ec499e59 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/lib/ares_sysconfig_mac.c
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -162,12 +162,17 @@ static ares_status_t read_resolver(const dns_resolver_t *resolver,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   unsigned short port   = 0;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   ares_status_t  status = ARES_SUCCESS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 /* MacOS 10.8 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* XXX: resolver->domain is for domain-specific servers.  When we implement
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    *      this support, we'll want to use this.  But for now, we're going to
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-   *      skip any servers which set this since we can't properly route. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *      skip any servers which set this since we can't properly route.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *      MacOS used to use this setting for a different purpose in the
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *      past however, so on versions of MacOS < 10.8 just ignore this
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++   *      completely. */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   if (resolver->domain != NULL) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     return ARES_SUCCESS;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 /* MacOS 10.8 */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   /* Check to see if DNS server should be used, base this on if the server is
</span></pre><pre style='margin:0'>

</pre>