From 04c91e864c1b8d3cfb5efd4d7e22acd4d5add155 Mon Sep 17 00:00:00 2001 From: Max Harmathy Date: Fri, 28 Oct 2022 19:36:03 +0200 Subject: [PATCH] Fix loss of DNS servers on config reload --- trunk/PKGBUILD | 10 +++++++--- trunk/dns-fix.patch | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 trunk/dns-fix.patch diff --git a/trunk/PKGBUILD b/trunk/PKGBUILD index f54f8c4..96fe932 100644 --- a/trunk/PKGBUILD +++ b/trunk/PKGBUILD @@ -5,7 +5,7 @@ pkgname=dnsmasq pkgver=2.87 -pkgrel=1 +pkgrel=2 pkgdesc='Lightweight, easy to configure DNS forwarder and DHCP server' url='http://www.thekelleys.org.uk/dnsmasq/doc.html' arch=('x86_64') @@ -16,17 +16,21 @@ backup=('etc/dnsmasq.conf') validpgpkeys=('D6EACBD6EE46B834248D111215CDDA6AE19135A2') # Simon Kelley source=("http://www.thekelleys.org.uk/$pkgname/$pkgname-$pkgver.tar.xz"{,.asc} 'dnsmasq-sysusers.conf' - 'dnsmasq.service') + 'dnsmasq.service' + 'dns-fix.patch') sha256sums=('0228c0364a7f2356fd7e7f1549937cbf3099a78d3b2eb1ba5bb0c31e2b89de7a' 'SKIP' '7f6ff6a709038ae580758f4b6a754451d7f7ce22957b88a36b97f7b643d3c2ab' - '297dbae8cfa3d353284820dd87cc65c37d1ef289cac3a5c3ede079413d31eeec') + '297dbae8cfa3d353284820dd87cc65c37d1ef289cac3a5c3ede079413d31eeec' + 'a3266f94576f28e8a9b96436fe83380968fba4bc70a6269f0c55205f35a18e17') _build_copts='-DHAVE_DNSSEC -DHAVE_DBUS -DHAVE_LIBIDN2 -DHAVE_CONNTRACK' build() { cd "$pkgname-$pkgver" + patch -p1 < "$startdir/dns-fix.patch" + make \ CFLAGS="$CPPFLAGS $CFLAGS" \ LDFLAGS="$LDFLAGS" \ diff --git a/trunk/dns-fix.patch b/trunk/dns-fix.patch new file mode 100644 index 0000000..371c68f --- /dev/null +++ b/trunk/dns-fix.patch @@ -0,0 +1,33 @@ +From a3c889228f5ce7247ef19387df954722822c63de Mon Sep 17 00:00:00 2001 +From: Simon Kelley +Date: Mon, 17 Oct 2022 21:15:43 +0100 +Subject: [PATCH] Fix loss of DNS servers on config reload. + +A bug, introduced in 2.87, which could result in DNS +servers being removed from the configuration when reloading +server configuration from DBus, or re-reading /etc/resolv.conf +Only servers from the same source should be replaced, but some +servers from other sources (ie hard coded or another dynamic source) +could mysteriously disappear. +--- + src/domain-match.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/src/domain-match.c b/src/domain-match.c +index f7db0fe..76a1109 100644 +--- a/src/domain-match.c ++++ b/src/domain-match.c +@@ -683,7 +683,9 @@ int add_update_server(int flags, + serv->next = NULL; + } + break; +- } ++ } ++ else ++ up = &serv->next; + } + + if (serv) +-- +2.38.1 + -- 2.38.1