mdns: Upgrade 2200.100.94.0.2 -> 2200.120.24

Drop 0015-Add-missing-limits.h.patch (equivalent patch merged upstream),
rebase other patches.

Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Alex Kiernan
2024-06-05 16:04:00 +00:00
committed by Khem Raj
parent bfc372f8c4
commit db6540fee1
18 changed files with 122 additions and 149 deletions
@@ -1,7 +1,7 @@
From c1f3e19d3cb0aa948248616eb1684a1e80aa39b4 Mon Sep 17 00:00:00 2001 From 1fefe289d0c907392382eb2fa2f1f0ecac02f85d Mon Sep 17 00:00:00 2001
From: Nate Karstens <nate.karstens@garmin.com> From: Nate Karstens <nate.karstens@garmin.com>
Date: Wed, 28 Jun 2017 17:30:00 -0500 Date: Wed, 28 Jun 2017 17:30:00 -0500
Subject: [PATCH 1/8] Create subroutine for cleaning recent interfaces Subject: [PATCH] Create subroutine for cleaning recent interfaces
Moves functionality for cleaning the list of recent Moves functionality for cleaning the list of recent
interfaces into its own subroutine. interfaces into its own subroutine.
@@ -14,11 +14,11 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
mDNSPosix/mDNSPosix.c | 24 ++++++++++++++---------- mDNSPosix/mDNSPosix.c | 24 ++++++++++++++----------
1 file changed, 14 insertions(+), 10 deletions(-) 1 file changed, 14 insertions(+), 10 deletions(-)
Index: mDNSResponder/mDNSPosix/mDNSPosix.c diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
=================================================================== index 3b761d04e3c4..5aa220cf694e 100644
--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c --- a/mDNSPosix/mDNSPosix.c
+++ mDNSResponder/mDNSPosix/mDNSPosix.c +++ b/mDNSPosix/mDNSPosix.c
@@ -1322,6 +1322,19 @@ mDNSlocal int SetupSocket(struct sockadd @@ -1322,6 +1322,19 @@ mDNSlocal int SetupSocket(struct sockaddr *intfAddr, mDNSIPPort port, int interf
return err; return err;
} }
@@ -38,7 +38,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
// Creates a PosixNetworkInterface for the interface whose IP address is // Creates a PosixNetworkInterface for the interface whose IP address is
// intfAddr and whose name is intfName and registers it with mDNS core. // intfAddr and whose name is intfName and registers it with mDNS core.
mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct sockaddr *intfMask, mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct sockaddr *intfMask,
@@ -1559,16 +1572,7 @@ mDNSlocal int SetupInterfaceList(mDNS *c @@ -1559,16 +1572,7 @@ mDNSlocal int SetupInterfaceList(mDNS *const m)
// Clean up. // Clean up.
if (intfList != NULL) freeifaddrs(intfList); if (intfList != NULL) freeifaddrs(intfList);
@@ -1,4 +1,4 @@
From 14cc53bb09a3d8adf301f3842c765598467e63e1 Mon Sep 17 00:00:00 2001 From 2db1f5bc941e4b4cd1721e361a47cfe288b07a76 Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com> From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Thu, 1 Feb 2024 14:07:03 +0000 Date: Thu, 1 Feb 2024 14:07:03 +0000
Subject: [PATCH] Fix SIGSEGV during DumpStateLog() Subject: [PATCH] Fix SIGSEGV during DumpStateLog()
@@ -25,6 +25,3 @@ index 7a4ca19eff6d..d449dde320f6 100644
{ {
return; return;
} }
--
2.39.0
@@ -1,4 +1,4 @@
From 1cc54320306e07c1fc0eed98e7fbcbb07a2f3b28 Mon Sep 17 00:00:00 2001 From c67102307f25c5f4d238c736e90519e56a76ae79 Mon Sep 17 00:00:00 2001
From: Stefan Agner <stefan@agner.ch> From: Stefan Agner <stefan@agner.ch>
Date: Fri, 23 Jun 2023 10:10:00 +0200 Date: Fri, 23 Jun 2023 10:10:00 +0200
Subject: [PATCH] Handle interface without `ifa_addr` Subject: [PATCH] Handle interface without `ifa_addr`
@@ -14,11 +14,11 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
mDNSPosix/mDNSPosix.c | 4 +++- mDNSPosix/mDNSPosix.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-) 1 file changed, 3 insertions(+), 1 deletion(-)
Index: mDNSResponder/mDNSPosix/mDNSPosix.c diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
=================================================================== index 0c9dd2582660..c3ead26799e6 100644
--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c --- a/mDNSPosix/mDNSPosix.c
+++ mDNSResponder/mDNSPosix/mDNSPosix.c +++ b/mDNSPosix/mDNSPosix.c
@@ -1895,6 +1895,7 @@ mDNSlocal void InterfaceChangeCallback(i @@ -1895,6 +1895,7 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
continue; continue;
if ((ifa_loop4 == NULL) && if ((ifa_loop4 == NULL) &&
@@ -26,7 +26,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
((*ifi)->ifa_addr->sa_family == AF_INET) && ((*ifi)->ifa_addr->sa_family == AF_INET) &&
((*ifi)->ifa_flags & IFF_UP) && ((*ifi)->ifa_flags & IFF_UP) &&
((*ifi)->ifa_flags & IFF_LOOPBACK)) ((*ifi)->ifa_flags & IFF_LOOPBACK))
@@ -1903,7 +1904,8 @@ mDNSlocal void InterfaceChangeCallback(i @@ -1903,7 +1904,8 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
continue; continue;
} }
@@ -1,7 +1,7 @@
From cea342c10731cb1c8c8b52f03d55f9d15fc3b091 Mon Sep 17 00:00:00 2001 From a5fe20fa00088683136a09a4da3c36d9b20fe1b9 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Thu, 4 Nov 2021 07:31:32 -0700 Date: Thu, 4 Nov 2021 07:31:32 -0700
Subject: [PATCH 1/6] dns-sd: Include missing headers Subject: [PATCH] dns-sd: Include missing headers
Fixes build on Musl Fixes build on Musl
@@ -11,10 +11,10 @@ Signed-off-by: Khem Raj <raj.khem@gmail.com>
mDNSPosix/nss_mdns.c | 3 +++ mDNSPosix/nss_mdns.c | 3 +++
1 file changed, 3 insertions(+) 1 file changed, 3 insertions(+)
Index: mDNSResponder/mDNSPosix/nss_mdns.c diff --git a/mDNSPosix/nss_mdns.c b/mDNSPosix/nss_mdns.c
=================================================================== index afadb3c6c33b..84c312759463 100644
--- mDNSResponder.orig/mDNSPosix/nss_mdns.c --- a/mDNSPosix/nss_mdns.c
+++ mDNSResponder/mDNSPosix/nss_mdns.c +++ b/mDNSPosix/nss_mdns.c
@@ -89,6 +89,9 @@ @@ -89,6 +89,9 @@
#include <dns_sd.h> #include <dns_sd.h>
@@ -1,7 +1,7 @@
From 40ef0241afbb49f84e76afd65eb3ee17466bb582 Mon Sep 17 00:00:00 2001 From d265ac9346d3dcbcf1187134318baafcfa75c054 Mon Sep 17 00:00:00 2001
From: Nate Karstens <nate.karstens@garmin.com> From: Nate Karstens <nate.karstens@garmin.com>
Date: Wed, 28 Jun 2017 17:30:00 -0500 Date: Wed, 28 Jun 2017 17:30:00 -0500
Subject: [PATCH 2/8] Create subroutine for tearing down an interface Subject: [PATCH] Create subroutine for tearing down an interface
Creates a subroutine for tearing down an interface. Creates a subroutine for tearing down an interface.
@@ -13,11 +13,11 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
mDNSPosix/mDNSPosix.c | 22 ++++++++++++++++------ mDNSPosix/mDNSPosix.c | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-) 1 file changed, 16 insertions(+), 6 deletions(-)
Index: mDNSResponder/mDNSPosix/mDNSPosix.c diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
=================================================================== index 5aa220cf694e..a6041b04a21e 100644
--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c --- a/mDNSPosix/mDNSPosix.c
+++ mDNSResponder/mDNSPosix/mDNSPosix.c +++ b/mDNSPosix/mDNSPosix.c
@@ -1043,6 +1043,19 @@ mDNSlocal void FreePosixNetworkInterface @@ -1043,6 +1043,19 @@ mDNSlocal void FreePosixNetworkInterface(PosixNetworkInterface *intf)
gRecentInterfaces = intf; gRecentInterfaces = intf;
} }
@@ -37,7 +37,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
// Grab the first interface, deregister it, free it, and repeat until done. // Grab the first interface, deregister it, free it, and repeat until done.
mDNSlocal void ClearInterfaceList(mDNS *const m) mDNSlocal void ClearInterfaceList(mDNS *const m)
{ {
@@ -1051,13 +1064,10 @@ mDNSlocal void ClearInterfaceList(mDNS * @@ -1051,13 +1064,10 @@ mDNSlocal void ClearInterfaceList(mDNS *const m)
while (m->HostInterfaces) while (m->HostInterfaces)
{ {
PosixNetworkInterface *intf = (PosixNetworkInterface*)(m->HostInterfaces); PosixNetworkInterface *intf = (PosixNetworkInterface*)(m->HostInterfaces);
@@ -1,7 +1,7 @@
From a198bcd457abd04f2e22812ff3a37246aa564614 Mon Sep 17 00:00:00 2001 From dfa9e2c494d1a834f5bdfe4dc24e8329dd8720eb Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com> From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Mon, 5 Dec 2022 15:14:12 +0000 Date: Mon, 5 Dec 2022 15:14:12 +0000
Subject: [PATCH 2/6] make: Set libdns_sd.so soname correctly Subject: [PATCH] make: Set libdns_sd.so soname correctly
Upstream-Status: Pending Upstream-Status: Pending
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
@@ -9,11 +9,11 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
mDNSPosix/Makefile | 2 +- mDNSPosix/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Index: mDNSResponder/mDNSPosix/Makefile diff --git a/mDNSPosix/Makefile b/mDNSPosix/Makefile
=================================================================== index 041706523139..c877c8bb19e6 100755
--- mDNSResponder.orig/mDNSPosix/Makefile --- a/mDNSPosix/Makefile
+++ mDNSResponder/mDNSPosix/Makefile +++ b/mDNSPosix/Makefile
@@ -276,7 +276,7 @@ libdns_sd: setup $(BUILDDIR)/libdns_sd.$ @@ -276,7 +276,7 @@ libdns_sd: setup $(BUILDDIR)/libdns_sd.$(LDSUFFIX)
CLIENTLIBOBJS = $(OBJDIR)/dnssd_clientlib.c.so.o $(OBJDIR)/dnssd_clientstub.c.so.o $(OBJDIR)/dnssd_ipc.c.so.o $(OBJDIR)/dnssd_errstring.c.so.o CLIENTLIBOBJS = $(OBJDIR)/dnssd_clientlib.c.so.o $(OBJDIR)/dnssd_clientstub.c.so.o $(OBJDIR)/dnssd_ipc.c.so.o $(OBJDIR)/dnssd_errstring.c.so.o
$(BUILDDIR)/libdns_sd.$(LDSUFFIX): $(CLIENTLIBOBJS) $(BUILDDIR)/libdns_sd.$(LDSUFFIX): $(CLIENTLIBOBJS)
@@ -1,7 +1,7 @@
From deb3a2c51f32e0d2741be11a492e727129f770e2 Mon Sep 17 00:00:00 2001 From 5f58e5671cd6dbd4cb49bd30fb606d430b626361 Mon Sep 17 00:00:00 2001
From: Nate Karstens <nate.karstens@garmin.com> From: Nate Karstens <nate.karstens@garmin.com>
Date: Wed, 28 Jun 2017 17:30:00 -0500 Date: Wed, 28 Jun 2017 17:30:00 -0500
Subject: [PATCH 3/8] Track interface socket family Subject: [PATCH] Track interface socket family
Tracks the socket family associated with the interface. Tracks the socket family associated with the interface.
@@ -14,11 +14,11 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
mDNSPosix/mDNSPosix.h | 2 ++ mDNSPosix/mDNSPosix.h | 2 ++
2 files changed, 3 insertions(+) 2 files changed, 3 insertions(+)
Index: mDNSResponder/mDNSPosix/mDNSPosix.c diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
=================================================================== index a6041b04a21e..15bbecee04a4 100644
--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c --- a/mDNSPosix/mDNSPosix.c
+++ mDNSResponder/mDNSPosix/mDNSPosix.c +++ b/mDNSPosix/mDNSPosix.c
@@ -1415,6 +1415,7 @@ mDNSlocal int SetupOneInterface(mDNS *co @@ -1415,6 +1415,7 @@ mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct
// Set up the extra fields in PosixNetworkInterface. // Set up the extra fields in PosixNetworkInterface.
assert(intf->intfName != NULL); // intf->intfName already set up above assert(intf->intfName != NULL); // intf->intfName already set up above
intf->index = intfIndex; intf->index = intfIndex;
@@ -26,10 +26,10 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
intf->multicastSocket4 = -1; intf->multicastSocket4 = -1;
#if HAVE_IPV6 #if HAVE_IPV6
intf->multicastSocket6 = -1; intf->multicastSocket6 = -1;
Index: mDNSResponder/mDNSPosix/mDNSPosix.h diff --git a/mDNSPosix/mDNSPosix.h b/mDNSPosix/mDNSPosix.h
=================================================================== index 9675591b0434..dd7864cd0d5e 100644
--- mDNSResponder.orig/mDNSPosix/mDNSPosix.h --- a/mDNSPosix/mDNSPosix.h
+++ mDNSResponder/mDNSPosix/mDNSPosix.h +++ b/mDNSPosix/mDNSPosix.h
@@ -19,6 +19,7 @@ @@ -19,6 +19,7 @@
#define __mDNSPlatformPosix_h #define __mDNSPlatformPosix_h
@@ -1,7 +1,7 @@
From beab76b5708862f44d9acbe7a92db45e2f99259f Mon Sep 17 00:00:00 2001 From 935033dd40772240c9bcc6b9610d78eb3753bfaf Mon Sep 17 00:00:00 2001
From: Nate Karstens <nate.karstens@garmin.com> From: Nate Karstens <nate.karstens@garmin.com>
Date: Tue, 1 Aug 2017 17:06:01 -0500 Date: Tue, 1 Aug 2017 17:06:01 -0500
Subject: [PATCH 4/8] Indicate loopback interface to mDNS core Subject: [PATCH] Indicate loopback interface to mDNS core
Tells the mDNS core if an interface is a loopback interface, Tells the mDNS core if an interface is a loopback interface,
similar to AddInterfaceToList() in the MacOS implementation. similar to AddInterfaceToList() in the MacOS implementation.
@@ -14,11 +14,11 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
mDNSPosix/mDNSPosix.c | 7 ++++--- mDNSPosix/mDNSPosix.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-) 1 file changed, 4 insertions(+), 3 deletions(-)
Index: mDNSResponder/mDNSPosix/mDNSPosix.c diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
=================================================================== index 15bbecee04a4..f4c31a07d587 100644
--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c --- a/mDNSPosix/mDNSPosix.c
+++ mDNSResponder/mDNSPosix/mDNSPosix.c +++ b/mDNSPosix/mDNSPosix.c
@@ -1348,7 +1348,7 @@ mDNSlocal void CleanRecentInterfaces(voi @@ -1348,7 +1348,7 @@ mDNSlocal void CleanRecentInterfaces(void)
// Creates a PosixNetworkInterface for the interface whose IP address is // Creates a PosixNetworkInterface for the interface whose IP address is
// intfAddr and whose name is intfName and registers it with mDNS core. // intfAddr and whose name is intfName and registers it with mDNS core.
mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct sockaddr *intfMask, mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct sockaddr *intfMask,
@@ -27,7 +27,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
{ {
int err = 0; int err = 0;
PosixNetworkInterface *intf; PosixNetworkInterface *intf;
@@ -1411,6 +1411,7 @@ mDNSlocal int SetupOneInterface(mDNS *co @@ -1411,6 +1411,7 @@ mDNSlocal int SetupOneInterface(mDNS *const m, struct sockaddr *intfAddr, struct
intf->coreIntf.Advertise = m->AdvertiseLocalAddresses; intf->coreIntf.Advertise = m->AdvertiseLocalAddresses;
intf->coreIntf.McastTxRx = mDNStrue; intf->coreIntf.McastTxRx = mDNStrue;
@@ -35,7 +35,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
// Set up the extra fields in PosixNetworkInterface. // Set up the extra fields in PosixNetworkInterface.
assert(intf->intfName != NULL); // intf->intfName already set up above assert(intf->intfName != NULL); // intf->intfName already set up above
@@ -1561,7 +1562,7 @@ mDNSlocal int SetupInterfaceList(mDNS *c @@ -1561,7 +1562,7 @@ mDNSlocal int SetupInterfaceList(mDNS *const m)
} }
#endif #endif
if (SetupOneInterface(m, i->ifa_addr, i->ifa_netmask, if (SetupOneInterface(m, i->ifa_addr, i->ifa_netmask,
@@ -44,7 +44,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
{ {
if (i->ifa_addr->sa_family == AF_INET) if (i->ifa_addr->sa_family == AF_INET)
foundav4 = mDNStrue; foundav4 = mDNStrue;
@@ -1578,7 +1579,7 @@ mDNSlocal int SetupInterfaceList(mDNS *c @@ -1578,7 +1579,7 @@ mDNSlocal int SetupInterfaceList(mDNS *const m)
// if ((m->HostInterfaces == NULL) && (firstLoopback != NULL)) // if ((m->HostInterfaces == NULL) && (firstLoopback != NULL))
if (!foundav4 && firstLoopback) if (!foundav4 && firstLoopback)
(void) SetupOneInterface(m, firstLoopback->ifa_addr, firstLoopback->ifa_netmask, (void) SetupOneInterface(m, firstLoopback->ifa_addr, firstLoopback->ifa_netmask,
@@ -1,7 +1,7 @@
From 22316f200803225f2d375ae5c36ffead59e2f6b8 Mon Sep 17 00:00:00 2001 From f871ac42165c29f763785aa0199dfc76f1731f4d Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com> From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Mon, 5 Dec 2022 15:14:26 +0000 Date: Mon, 5 Dec 2022 15:14:26 +0000
Subject: [PATCH 4/6] make: Separate TLS targets from libraries Subject: [PATCH] make: Separate TLS targets from libraries
There are dependencies on TLSOBJS, which fails when `-lmbedtls` is There are dependencies on TLSOBJS, which fails when `-lmbedtls` is
listed as a dependency, so separate it out. listed as a dependency, so separate it out.
@@ -12,10 +12,10 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
mDNSPosix/Makefile | 14 ++++++++------ mDNSPosix/Makefile | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-) 1 file changed, 8 insertions(+), 6 deletions(-)
Index: mDNSResponder/mDNSPosix/Makefile diff --git a/mDNSPosix/Makefile b/mDNSPosix/Makefile
=================================================================== index c877c8bb19e6..3a5897c4dbee 100755
--- mDNSResponder.orig/mDNSPosix/Makefile --- a/mDNSPosix/Makefile
+++ mDNSResponder/mDNSPosix/Makefile +++ b/mDNSPosix/Makefile
@@ -112,9 +112,11 @@ ifeq ($(findstring linux,$(os)),linux) @@ -112,9 +112,11 @@ ifeq ($(findstring linux,$(os)),linux)
ifeq ($(tls), no) ifeq ($(tls), no)
CFLAGS_OS = -D_GNU_SOURCE -DHAVE_IPV6 -DNOT_HAVE_SA_LEN -DUSES_NETLINK -DHAVE_LINUX -DTARGET_OS_LINUX -ftabstop=4 -Wno-expansion-to-defined CFLAGS_OS = -D_GNU_SOURCE -DHAVE_IPV6 -DNOT_HAVE_SA_LEN -DUSES_NETLINK -DHAVE_LINUX -DTARGET_OS_LINUX -ftabstop=4 -Wno-expansion-to-defined
@@ -1,7 +1,7 @@
From e79f81f5cd626ad77ec64de4325f6645cf253c5e Mon Sep 17 00:00:00 2001 From 47118760466b74939cec9f5233062236a12bb3f4 Mon Sep 17 00:00:00 2001
From: Nate Karstens <nate.karstens@garmin.com> From: Nate Karstens <nate.karstens@garmin.com>
Date: Thu, 13 Jul 2017 09:00:00 -0500 Date: Thu, 13 Jul 2017 09:00:00 -0500
Subject: [PATCH 5/8] Use list for changed interfaces Subject: [PATCH] Use list for changed interfaces
Uses a linked list to store the index of changed network interfaces Uses a linked list to store the index of changed network interfaces
instead of a bitfield. This allows for network interfaces with an instead of a bitfield. This allows for network interfaces with an
@@ -15,10 +15,10 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
mDNSPosix/mDNSPosix.c | 58 ++++++++++++++++++++++++++++++++----------- mDNSPosix/mDNSPosix.c | 58 ++++++++++++++++++++++++++++++++-----------
1 file changed, 43 insertions(+), 15 deletions(-) 1 file changed, 43 insertions(+), 15 deletions(-)
Index: mDNSResponder/mDNSPosix/mDNSPosix.c diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
=================================================================== index f4c31a07d587..6b2fe76d4b66 100644
--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c --- a/mDNSPosix/mDNSPosix.c
+++ mDNSResponder/mDNSPosix/mDNSPosix.c +++ b/mDNSPosix/mDNSPosix.c
@@ -74,6 +74,14 @@ struct IfChangeRec @@ -74,6 +74,14 @@ struct IfChangeRec
}; };
typedef struct IfChangeRec IfChangeRec; typedef struct IfChangeRec IfChangeRec;
@@ -34,7 +34,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
// Note that static data is initialized to zero in (modern) C. // Note that static data is initialized to zero in (modern) C.
static PosixEventSource *gEventSources; // linked list of PosixEventSource's static PosixEventSource *gEventSources; // linked list of PosixEventSource's
static sigset_t gEventSignalSet; // Signals which event loop listens for static sigset_t gEventSignalSet; // Signals which event loop listens for
@@ -1621,6 +1629,23 @@ mDNSlocal mStatus OpenIfNotifySocket(int @@ -1621,6 +1629,23 @@ mDNSlocal mStatus OpenIfNotifySocket(int *pFD)
return err; return err;
} }
@@ -58,7 +58,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
#if MDNS_DEBUGMSGS #if MDNS_DEBUGMSGS
mDNSlocal void PrintNetLinkMsg(const struct nlmsghdr *pNLMsg) mDNSlocal void PrintNetLinkMsg(const struct nlmsghdr *pNLMsg)
{ {
@@ -1648,14 +1673,13 @@ mDNSlocal void PrintNetLinkMsg(cons @@ -1648,14 +1673,13 @@ mDNSlocal void PrintNetLinkMsg(const struct nlmsghdr *pNLMsg)
} }
#endif #endif
@@ -74,7 +74,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
// The structure here is more complex than it really ought to be because, // The structure here is more complex than it really ought to be because,
// unfortunately, there's no good way to size a buffer in advance large // unfortunately, there's no good way to size a buffer in advance large
@@ -1691,9 +1715,9 @@ mDNSlocal mDNSu32 ProcessRoutingNo @@ -1691,9 +1715,9 @@ mDNSlocal mDNSu32 ProcessRoutingNotification(int sd)
// Process the NetLink message // Process the NetLink message
if (pNLMsg->nlmsg_type == RTM_GETLINK || pNLMsg->nlmsg_type == RTM_NEWLINK) if (pNLMsg->nlmsg_type == RTM_GETLINK || pNLMsg->nlmsg_type == RTM_NEWLINK)
@@ -86,7 +86,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
// Advance pNLMsg to the next message in the buffer // Advance pNLMsg to the next message in the buffer
if ((pNLMsg->nlmsg_flags & NLM_F_MULTI) != 0 && pNLMsg->nlmsg_type != NLMSG_DONE) if ((pNLMsg->nlmsg_flags & NLM_F_MULTI) != 0 && pNLMsg->nlmsg_type != NLMSG_DONE)
@@ -1704,8 +1728,6 @@ mDNSlocal mDNSu32 ProcessRoutingNo @@ -1704,8 +1728,6 @@ mDNSlocal mDNSu32 ProcessRoutingNotification(int sd)
else else
break; // all done! break; // all done!
} }
@@ -95,7 +95,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
} }
#else // USES_NETLINK #else // USES_NETLINK
@@ -1737,14 +1759,13 @@ mDNSlocal void PrintRoutingSocketMs @@ -1737,14 +1759,13 @@ mDNSlocal void PrintRoutingSocketMsg(const struct ifa_msghdr *pRSMsg)
} }
#endif #endif
@@ -111,7 +111,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
readCount = read(sd, buff, sizeof buff); readCount = read(sd, buff, sizeof buff);
if (readCount < (ssize_t) sizeof(struct ifa_msghdr)) if (readCount < (ssize_t) sizeof(struct ifa_msghdr))
@@ -1759,12 +1780,10 @@ mDNSlocal mDNSu32 ProcessRoutingNo @@ -1759,12 +1780,10 @@ mDNSlocal mDNSu32 ProcessRoutingNotification(int sd)
pRSMsg->ifam_type == RTM_IFINFO) pRSMsg->ifam_type == RTM_IFINFO)
{ {
if (pRSMsg->ifam_type == RTM_IFINFO) if (pRSMsg->ifam_type == RTM_IFINFO)
@@ -126,7 +126,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
} }
#endif // USES_NETLINK #endif // USES_NETLINK
@@ -1774,7 +1793,8 @@ mDNSlocal void InterfaceChangeCallback(i @@ -1774,7 +1793,8 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
{ {
IfChangeRec *pChgRec = (IfChangeRec*) context; IfChangeRec *pChgRec = (IfChangeRec*) context;
fd_set readFDs; fd_set readFDs;
@@ -136,7 +136,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
struct timeval zeroTimeout = { 0, 0 }; struct timeval zeroTimeout = { 0, 0 };
(void)fd; // Unused (void)fd; // Unused
@@ -1782,17 +1802,25 @@ mDNSlocal void InterfaceChangeCallback(i @@ -1782,17 +1802,25 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
FD_ZERO(&readFDs); FD_ZERO(&readFDs);
FD_SET(pChgRec->NotifySD, &readFDs); FD_SET(pChgRec->NotifySD, &readFDs);
@@ -1,20 +1,19 @@
From 764b6202402e9e5687ff873330e5ad6be6f69df7 Mon Sep 17 00:00:00 2001 From 0b3953dfdeef8dc9b8a23820659feee9e15b5bad Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com> From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Mon, 5 Dec 2022 22:49:49 +0000 Date: Mon, 5 Dec 2022 22:49:49 +0000
Subject: [PATCH] mDNSCore: Fix broken debug parameter Subject: [PATCH] mDNSCore: Fix broken debug parameter
Upstream-Status: Pending Upstream-Status: Pending
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com> Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
--- ---
mDNSCore/mDNS.c | 2 +- mDNSCore/mDNS.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Index: mDNSResponder/mDNSCore/mDNS.c diff --git a/mDNSCore/mDNS.c b/mDNSCore/mDNS.c
=================================================================== index d4519a7f62aa..3090edb2ac5d 100644
--- mDNSResponder.orig/mDNSCore/mDNS.c --- a/mDNSCore/mDNS.c
+++ mDNSResponder/mDNSCore/mDNS.c +++ b/mDNSCore/mDNS.c
@@ -10231,7 +10231,7 @@ mDNSlocal void mDNSCoreReceiveNoUnicastA @@ -10253,7 +10253,7 @@ mDNSlocal void mDNSCoreReceiveNoUnicastAnswers(mDNS *const m, const DNSMessage *
#else #else
const DNSServRef dnsserv = qptr->qDNSServer; const DNSServRef dnsserv = qptr->qDNSServer;
#endif #endif
@@ -1,7 +1,7 @@
From bfa1d68bed863e22c40a6d9a19ffbcc8694bbff6 Mon Sep 17 00:00:00 2001 From 105514b75df6d7abd052ec64d8106f5c07cc4782 Mon Sep 17 00:00:00 2001
From: Nate Karstens <nate.karstens@garmin.com> From: Nate Karstens <nate.karstens@garmin.com>
Date: Mon, 24 Jul 2017 09:38:55 -0500 Date: Mon, 24 Jul 2017 09:38:55 -0500
Subject: [PATCH 6/8] Handle noisy netlink sockets Subject: [PATCH] Handle noisy netlink sockets
The POSIX implementation currently clears all network interfaces The POSIX implementation currently clears all network interfaces
when netlink indicates that there has been a change. This causes when netlink indicates that there has been a change. This causes
@@ -27,11 +27,11 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
mDNSPosix/mDNSPosix.c | 182 +++++++++++++++++++++++++++++++++++++++--- mDNSPosix/mDNSPosix.c | 182 +++++++++++++++++++++++++++++++++++++++---
1 file changed, 172 insertions(+), 10 deletions(-) 1 file changed, 172 insertions(+), 10 deletions(-)
Index: mDNSResponder/mDNSPosix/mDNSPosix.c diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
=================================================================== index 6b2fe76d4b66..ecd5741d038d 100644
--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c --- a/mDNSPosix/mDNSPosix.c
+++ mDNSResponder/mDNSPosix/mDNSPosix.c +++ b/mDNSPosix/mDNSPosix.c
@@ -1788,14 +1788,43 @@ mDNSlocal void ProcessRoutingNo @@ -1788,14 +1788,43 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change
#endif // USES_NETLINK #endif // USES_NETLINK
@@ -75,7 +75,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
(void)fd; // Unused (void)fd; // Unused
@@ -1810,12 +1839,149 @@ mDNSlocal void InterfaceChangeCallback(i @@ -1810,12 +1839,149 @@ mDNSlocal void InterfaceChangeCallback(int fd, void *context)
} }
while (0 < select(pChgRec->NotifySD + 1, &readFDs, (fd_set*) NULL, (fd_set*) NULL, &zeroTimeout)); while (0 < select(pChgRec->NotifySD + 1, &readFDs, (fd_set*) NULL, (fd_set*) NULL, &zeroTimeout));
@@ -230,7 +230,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
while ((changedInterface = (NetworkInterfaceIndex*)changedInterfaces.Head) != NULL) while ((changedInterface = (NetworkInterfaceIndex*)changedInterfaces.Head) != NULL)
{ {
RemoveFromList(&changedInterfaces, changedInterface); RemoveFromList(&changedInterfaces, changedInterface);
@@ -1947,15 +2113,11 @@ mDNSexport void mDNSPlatformClose(mDNS * @@ -1947,15 +2113,11 @@ mDNSexport void mDNSPlatformClose(mDNS *const m)
#endif #endif
} }
@@ -1,7 +1,7 @@
From fa9ef50ab4c4225cf3ade4bafc38ddf93e6fe127 Mon Sep 17 00:00:00 2001 From 626ccae85aab5b0902a8e3c05d9f0e3fbbe4fcd2 Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com> From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Tue, 6 Dec 2022 13:28:31 +0000 Date: Tue, 6 Dec 2022 13:28:31 +0000
Subject: [PATCH 6/6] make: Add top-level Makefile Subject: [PATCH] make: Add top-level Makefile
Simple top level Makefile that just delegates to mDNSPosix. Simple top level Makefile that just delegates to mDNSPosix.
@@ -12,10 +12,11 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
1 file changed, 2 insertions(+) 1 file changed, 2 insertions(+)
create mode 100644 Makefile create mode 100644 Makefile
Index: mDNSResponder/Makefile diff --git a/Makefile b/Makefile
=================================================================== new file mode 100644
index 000000000000..feb6ac67ef47
--- /dev/null --- /dev/null
+++ mDNSResponder/Makefile +++ b/Makefile
@@ -0,0 +1,2 @@ @@ -0,0 +1,2 @@
+all clean: +all clean:
+ cd mDNSPosix && $(MAKE) $@ + cd mDNSPosix && $(MAKE) $@
@@ -1,7 +1,7 @@
From a8accffb95267490b50401c8b65ec18db57b5ef5 Mon Sep 17 00:00:00 2001 From 3715b3f4a0ba2d2cb05e5ba617b523c759c88d4b Mon Sep 17 00:00:00 2001
From: Nate Karstens <nate.karstens@garmin.com> From: Nate Karstens <nate.karstens@garmin.com>
Date: Wed, 9 Aug 2017 09:16:58 -0500 Date: Wed, 9 Aug 2017 09:16:58 -0500
Subject: [PATCH 7/8] Mark deleted interfaces as being changed Subject: [PATCH] Mark deleted interfaces as being changed
Netlink notification handling ignores messages for deleted links, Netlink notification handling ignores messages for deleted links,
RTM_DELLINK. It does handle RTM_GETLINK. According to libnl docu- RTM_DELLINK. It does handle RTM_GETLINK. According to libnl docu-
@@ -22,11 +22,11 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
mDNSPosix/mDNSPosix.c | 2 +- mDNSPosix/mDNSPosix.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-) 1 file changed, 1 insertion(+), 1 deletion(-)
Index: mDNSResponder/mDNSPosix/mDNSPosix.c diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
=================================================================== index ecd5741d038d..776531dbc8e8 100644
--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c --- a/mDNSPosix/mDNSPosix.c
+++ mDNSResponder/mDNSPosix/mDNSPosix.c +++ b/mDNSPosix/mDNSPosix.c
@@ -1714,7 +1714,7 @@ mDNSlocal void ProcessRoutingNo @@ -1714,7 +1714,7 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change
#endif #endif
// Process the NetLink message // Process the NetLink message
@@ -1,7 +1,7 @@
From ed58146d3aeecdb9920fdc017f85c18b5b10f2db Mon Sep 17 00:00:00 2001 From 4e6621eee389e1cbb558fe268e02d5153a1d8f2d Mon Sep 17 00:00:00 2001
From: Nate Karstens <nate.karstens@garmin.com> From: Nate Karstens <nate.karstens@garmin.com>
Date: Thu, 10 Aug 2017 08:27:32 -0500 Date: Thu, 10 Aug 2017 08:27:32 -0500
Subject: [PATCH 8/8] Handle errors from socket calls Subject: [PATCH] Handle errors from socket calls
Adds handling for socket() or read() returning a Adds handling for socket() or read() returning a
negative value (indicating an error has occurred). negative value (indicating an error has occurred).
@@ -14,11 +14,11 @@ Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
mDNSPosix/mDNSPosix.c | 12 +++++++++--- mDNSPosix/mDNSPosix.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-) 1 file changed, 9 insertions(+), 3 deletions(-)
Index: mDNSResponder/mDNSPosix/mDNSPosix.c diff --git a/mDNSPosix/mDNSPosix.c b/mDNSPosix/mDNSPosix.c
=================================================================== index 776531dbc8e8..0c9dd2582660 100644
--- mDNSResponder.orig/mDNSPosix/mDNSPosix.c --- a/mDNSPosix/mDNSPosix.c
+++ mDNSResponder/mDNSPosix/mDNSPosix.c +++ b/mDNSPosix/mDNSPosix.c
@@ -1677,7 +1677,7 @@ mDNSlocal void ProcessRoutingNo @@ -1677,7 +1677,7 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change
// Read through the messages on sd and if any indicate that any interface records should // Read through the messages on sd and if any indicate that any interface records should
// be torn down and rebuilt, return affected indices as a bitmask. Otherwise return 0. // be torn down and rebuilt, return affected indices as a bitmask. Otherwise return 0.
{ {
@@ -27,7 +27,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
char buff[4096]; char buff[4096];
struct nlmsghdr *pNLMsg = (struct nlmsghdr*) buff; struct nlmsghdr *pNLMsg = (struct nlmsghdr*) buff;
@@ -1686,7 +1686,10 @@ mDNSlocal void ProcessRoutingNo @@ -1686,7 +1686,10 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change
// enough to hold all pending data and so avoid message fragmentation. // enough to hold all pending data and so avoid message fragmentation.
// (Note that FIONREAD is not supported on AF_NETLINK.) // (Note that FIONREAD is not supported on AF_NETLINK.)
@@ -39,7 +39,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
while (1) while (1)
{ {
// Make sure we've got an entire nlmsghdr in the buffer, and payload, too. // Make sure we've got an entire nlmsghdr in the buffer, and payload, too.
@@ -1702,7 +1705,9 @@ mDNSlocal void ProcessRoutingNo @@ -1702,7 +1705,9 @@ mDNSlocal void ProcessRoutingNotification(int sd, GenLinkedList *change
pNLMsg = (struct nlmsghdr*) buff; pNLMsg = (struct nlmsghdr*) buff;
// read more data // read more data
@@ -50,7 +50,7 @@ Index: mDNSResponder/mDNSPosix/mDNSPosix.c
continue; // spin around and revalidate with new readCount continue; // spin around and revalidate with new readCount
} }
else else
@@ -2017,6 +2022,7 @@ mDNSlocal mDNSBool mDNSPlatformInit_CanR @@ -2017,6 +2022,7 @@ mDNSlocal mDNSBool mDNSPlatformInit_CanReceiveUnicast(void)
int err; int err;
int s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); int s = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
struct sockaddr_in s5353; struct sockaddr_in s5353;
@@ -1,4 +1,4 @@
From 1d7e71e72c597ffcc19c04373a477d1fbd3ad955 Mon Sep 17 00:00:00 2001 From 05cb409ce213f35798c02faf2032d4846a84b48e Mon Sep 17 00:00:00 2001
From: Beniamin Sandu <beniaminsandu@gmail.com> From: Beniamin Sandu <beniaminsandu@gmail.com>
Date: Thu, 15 Jun 2023 17:02:58 +0000 Date: Thu, 15 Jun 2023 17:02:58 +0000
Subject: [PATCH] remove unneeded headers Subject: [PATCH] remove unneeded headers
@@ -14,10 +14,10 @@ Signed-off-by: Beniamin Sandu <beniaminsandu@gmail.com>
mDNSPosix/mbedtls.c | 2 -- mDNSPosix/mbedtls.c | 2 --
1 file changed, 2 deletions(-) 1 file changed, 2 deletions(-)
Index: mDNSResponder/mDNSPosix/mbedtls.c diff --git a/mDNSPosix/mbedtls.c b/mDNSPosix/mbedtls.c
=================================================================== index a73681b6d528..ab8f8c772c00 100644
--- mDNSResponder.orig/mDNSPosix/mbedtls.c --- a/mDNSPosix/mbedtls.c
+++ mDNSResponder/mDNSPosix/mbedtls.c +++ b/mDNSPosix/mbedtls.c
@@ -38,10 +38,8 @@ @@ -38,10 +38,8 @@
#include <mbedtls/sha256.h> #include <mbedtls/sha256.h>
#include <mbedtls/base64.h> #include <mbedtls/base64.h>
@@ -1,23 +0,0 @@
From 9fc45a2cf3b78573a568abf538a6e6f4bd30b2d7 Mon Sep 17 00:00:00 2001
From: Alex Kiernan <alex.kiernan@gmail.com>
Date: Wed, 27 Sep 2023 11:45:26 +0100
Subject: [PATCH] Add missing limits.h
Upstream-Status: Pending
Signed-off-by: Alex Kiernan <alex.kiernan@gmail.com>
---
mDNSShared/PlatformCommon.c | 1 +
1 file changed, 1 insertion(+)
Index: mDNSResponder/mDNSShared/PlatformCommon.c
===================================================================
--- mDNSResponder.orig/mDNSShared/PlatformCommon.c
+++ mDNSResponder/mDNSShared/PlatformCommon.c
@@ -32,6 +32,7 @@
#include <time.h>
#include <sys/time.h> // Needed for #include <sys/time.h>().
#include <assert.h>
+#include <limits.h>
#include "mDNSEmbeddedAPI.h" // Defines the interface provided to the client layer above
@@ -22,11 +22,10 @@ SRC_URI = "git://github.com/apple-oss-distributions/mDNSResponder;protocol=https
file://0008-Handle-errors-from-socket-calls.patch \ file://0008-Handle-errors-from-socket-calls.patch \
file://0009-remove-unneeded-headers.patch \ file://0009-remove-unneeded-headers.patch \
file://mdns.service \ file://mdns.service \
file://0015-Add-missing-limits.h.patch \
file://0001-Handle-interface-without-ifa_addr.patch \ file://0001-Handle-interface-without-ifa_addr.patch \
file://0001-Fix-SIGSEGV-during-DumpStateLog.patch \ file://0001-Fix-SIGSEGV-during-DumpStateLog.patch \
" "
SRCREV = "8f70f98fc1d0cf439ca3a6470be6ad8ac2bcc019" SRCREV = "51a7148a21362285f8013648c4bfa91247ff598a"
# We install a stub Makefile in the top directory so that the various checks # We install a stub Makefile in the top directory so that the various checks
# in base.bbclass pass their tests for a Makefile, this ensures (that amongst # in base.bbclass pass their tests for a Makefile, this ensures (that amongst