<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>