[PATCH v4 1/2] dnsmasq: Update to version 2.86test3

Etan Kissling etan.kissling at gmail.com
Sat Jun 26 16:26:12 PDT 2021


Need this version to add config option for connmark DNS filtering.

Summary of upstream CHANGELOG:
* Handle DHCPREBIND requests in the DHCPv6 server code.
* Fix bug which caused dnsmasq to lose track of processes forked.
* Major rewrite of the DNS server and domain handling code.
* Revise resource handling for number of concurrent DNS queries.
* Improve efficiency of DNSSEC.
* Connection track mark based DNS query filtering.

Signed-off-by: Etan Kissling <etan.kissling at gmail.com>
---
v3: Refreshed patches.
v4: Fix crash when running multiple dnsmasq instances.

 package/network/services/dnsmasq/Makefile     |  6 ++--
 ...00-remove-old-runtime-kernel-support.patch |  4 +--
 ...not-crash-when-Ubus-connection-fails.patch | 28 +++++++++++++++++++
 3 files changed, 33 insertions(+), 5 deletions(-)
 create mode 100644 package/network/services/dnsmasq/patches/101-Do-not-crash-when-Ubus-connection-fails.patch

diff --git a/package/network/services/dnsmasq/Makefile b/package/network/services/dnsmasq/Makefile
index 90a81b5f65..53080cb95b 100644
--- a/package/network/services/dnsmasq/Makefile
+++ b/package/network/services/dnsmasq/Makefile
@@ -8,13 +8,13 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=dnsmasq
-PKG_UPSTREAM_VERSION:=2.85
+PKG_UPSTREAM_VERSION:=2.86test3
 PKG_VERSION:=$(subst test,~~test,$(subst rc,~rc,$(PKG_UPSTREAM_VERSION)))
 PKG_RELEASE:=$(AUTORELEASE)
 
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION).tar.xz
-PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq
-PKG_HASH:=ad98d3803df687e5b938080f3d25c628fe41c878752d03fbc6199787fee312fa
+PKG_SOURCE_URL:=http://thekelleys.org.uk/dnsmasq/test-releases
+PKG_HASH:=0d0b465db89390e9f518f1239dec88b458c84489e7fd38586af6a5781f85e7db
 
 PKG_LICENSE:=GPL-2.0
 PKG_LICENSE_FILES:=COPYING
diff --git a/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch b/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch
index b601bce1a9..5670808afc 100644
--- a/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch
+++ b/package/network/services/dnsmasq/patches/100-remove-old-runtime-kernel-support.patch
@@ -26,7 +26,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir at darbyshire-bryant.me.uk>
  
 --- a/src/dnsmasq.h
 +++ b/src/dnsmasq.h
-@@ -1144,7 +1144,7 @@ extern struct daemon {
+@@ -1185,7 +1185,7 @@ extern struct daemon {
    int inotifyfd;
  #endif
  #if defined(HAVE_LINUX_NETWORK)
@@ -35,7 +35,7 @@ Signed-off-by: Kevin Darbyshire-Bryant <ldir at darbyshire-bryant.me.uk>
  #elif defined(HAVE_BSD_NETWORK)
    int dhcp_raw_fd, dhcp_icmp_fd, routefd;
  #endif
-@@ -1326,9 +1326,6 @@ int read_write(int fd, unsigned char *pa
+@@ -1368,9 +1368,6 @@ int read_write(int fd, unsigned char *pa
  void close_fds(long max_fd, int spare1, int spare2, int spare3);
  int wildcard_match(const char* wildcard, const char* match);
  int wildcard_matchn(const char* wildcard, const char* match, int num);
diff --git a/package/network/services/dnsmasq/patches/101-Do-not-crash-when-Ubus-connection-fails.patch b/package/network/services/dnsmasq/patches/101-Do-not-crash-when-Ubus-connection-fails.patch
new file mode 100644
index 0000000000..fad6e7d083
--- /dev/null
+++ b/package/network/services/dnsmasq/patches/101-Do-not-crash-when-Ubus-connection-fails.patch
@@ -0,0 +1,28 @@
+From c69760a3e317ab7e524bc794eac458292e683ca8 Mon Sep 17 00:00:00 2001
+From: Etan Kissling <etan.kissling at gmail.com>
+Date: Sun, 27 Jun 2021 01:04:32 +0200
+Subject: [PATCH] Do not crash when Ubus connection fails.
+
+When using multiple dnsmasq instances Ubus only connects on one of them.
+Since 3c93e8eb41952a9c91699386132d6fe83050e9be dnsmasq crashes instead.
+This change avoids the crash, leading to a graceful retry + error log.
+
+Signed-off-by: Etan Kissling <etan.kissling at gmail.com>
+---
+ src/dnsmasq.c | 4 +---
+ 1 file changed, 1 insertion(+), 3 deletions(-)
+
+--- a/src/dnsmasq.c
++++ b/src/dnsmasq.c
+@@ -445,10 +445,8 @@ int main (int argc, char **argv)
+   if (option_bool(OPT_UBUS))
+ #ifdef HAVE_UBUS
+     {
+-      char *err;
+       daemon->ubus = NULL;
+-      if ((err = ubus_init()))
+-	die(_("UBus error: %s"), err, EC_MISC);
++      (void) ubus_init(); /* Logging not set up yet. */
+     }
+ #else
+   die(_("UBus not available: set HAVE_UBUS in src/config.h"), NULL, EC_BADCONF);
-- 
2.30.1 (Apple Git-130)




More information about the openwrt-devel mailing list