aboutsummaryrefslogtreecommitdiffstats
path: root/package/network/services/dnsmasq/patches/010-reduce-logging.patch
diff options
context:
space:
mode:
Diffstat (limited to 'package/network/services/dnsmasq/patches/010-reduce-logging.patch')
-rw-r--r--package/network/services/dnsmasq/patches/010-reduce-logging.patch83
1 files changed, 83 insertions, 0 deletions
diff --git a/package/network/services/dnsmasq/patches/010-reduce-logging.patch b/package/network/services/dnsmasq/patches/010-reduce-logging.patch
new file mode 100644
index 0000000000..9141a135a4
--- /dev/null
+++ b/package/network/services/dnsmasq/patches/010-reduce-logging.patch
@@ -0,0 +1,83 @@
+From 3e2496fb16fb78cb95fffdac80f967310a34b1fa Mon Sep 17 00:00:00 2001
+From: Hannu Nyman <hannu.nyman@iki.fi>
+Date: Sat, 11 Feb 2017 13:44:08 +0000
+Subject: [PATCH] Decrease the number of individual sites listed in log.
+
+By default 30 first servers are listed individually to system log, and
+then a count of the remaining items. With e.g. a NXDOMAIN based adblock
+service, dnsmasq lists 30 unnecessary ad sites every time when dnsmasq
+evaluates the list. But the actual nameservers in use are evaluated last
+and are not displayed as they get included in the "remaining items" total.
+
+Handle the "local addresses only" separately and list only a few of them.
+Remove the "local addresses only" from the general count.
+---
+ CHANGELOG | 4 ++++
+ src/config.h | 1 +
+ src/network.c | 9 ++++++++-
+ 3 files changed, 13 insertions(+), 1 deletion(-)
+
+diff --git a/CHANGELOG b/CHANGELOG
+index 788aaf9..f7f5125 100644
+--- a/CHANGELOG
++++ b/CHANGELOG
+@@ -69,6 +69,10 @@ version 2.77
+ servers. Specifically, be prepared to open a new TCP
+ connection when we want to make multiple queries
+ but the upstream server accepts fewer queries per connection.
++
++ Improve logging of upstream servers when there are a lot
++ of "local addresses only" entries. Thanks to Hannu Nyman for
++ the patch.
+
+
+ version 2.76
+diff --git a/src/config.h b/src/config.h
+index be9cf05..cf527b3 100644
+--- a/src/config.h
++++ b/src/config.h
+@@ -27,6 +27,7 @@
+ #define FORWARD_TEST 50 /* try all servers every 50 queries */
+ #define FORWARD_TIME 20 /* or 20 seconds */
+ #define SERVERS_LOGGED 30 /* Only log this many servers when logging state */
++#define LOCALS_LOGGED 8 /* Only log this many local addresses when logging state */
+ #define RANDOM_SOCKS 64 /* max simultaneous random ports */
+ #define LEASE_RETRY 60 /* on error, retry writing leasefile after LEASE_RETRY seconds */
+ #define CACHESIZ 150 /* default cache size */
+diff --git a/src/network.c b/src/network.c
+index 770558a..eb41624 100644
+--- a/src/network.c
++++ b/src/network.c
+@@ -1438,6 +1438,7 @@ void check_servers(void)
+ struct server *serv;
+ struct serverfd *sfd, *tmp, **up;
+ int port = 0, count;
++ int locals = 0;
+
+ /* interface may be new since startup */
+ if (!option_bool(OPT_NOWILD))
+@@ -1541,7 +1542,11 @@ void check_servers(void)
+ s1 = _("domain"), s2 = serv->domain;
+
+ if (serv->flags & SERV_NO_ADDR)
+- my_syslog(LOG_INFO, _("using local addresses only for %s %s"), s1, s2);
++ {
++ count--;
++ if (++locals <= LOCALS_LOGGED)
++ my_syslog(LOG_INFO, _("using local addresses only for %s %s"), s1, s2);
++ }
+ else if (serv->flags & SERV_USE_RESOLV)
+ my_syslog(LOG_INFO, _("using standard nameservers for %s %s"), s1, s2);
+ else
+@@ -1558,6 +1563,8 @@ void check_servers(void)
+ }
+ }
+
++ if (locals > LOCALS_LOGGED)
++ my_syslog(LOG_INFO, _("using %d more local addresses"), locals - LOCALS_LOGGED);
+ if (count - 1 > SERVERS_LOGGED)
+ my_syslog(LOG_INFO, _("using %d more nameservers"), count - SERVERS_LOGGED - 1);
+
+--
+1.7.10.4
+