dnsmasq: follow upstream dnsmasq pre-v2.81
[openwrt/staging/rmilecki.git] / package / network / services / dnsmasq / patches / 0005-Fix-logging-in-cf5984367bc6a949e3803a576512c5a7bc48e.patch
diff --git a/package/network/services/dnsmasq/patches/0005-Fix-logging-in-cf5984367bc6a949e3803a576512c5a7bc48e.patch b/package/network/services/dnsmasq/patches/0005-Fix-logging-in-cf5984367bc6a949e3803a576512c5a7bc48e.patch
new file mode 100644 (file)
index 0000000..b9be306
--- /dev/null
@@ -0,0 +1,63 @@
+From cbb5b17ad8e03e08ade62376a4f6a2066e55960d Mon Sep 17 00:00:00 2001
+From: Simon Kelley <simon@thekelleys.org.uk>
+Date: Tue, 23 Oct 2018 23:45:57 +0100
+Subject: [PATCH 05/11] Fix logging in cf5984367bc6a949e3803a576512c5a7bc48ebab
+
+Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
+---
+ src/rfc1035.c | 27 ++++++++++++++++++---------
+ 1 file changed, 18 insertions(+), 9 deletions(-)
+
+--- a/src/rfc1035.c
++++ b/src/rfc1035.c
+@@ -1335,7 +1335,6 @@ size_t answer_request(struct dns_header
+                   {
+                     unsigned long ttl = daemon->local_ttl;
+                     int ok = 1;
+-                    log_query(F_CONFIG | F_RRNAME, name, NULL, "<TXT>");
+ #ifndef NO_ID
+                     /* Dynamically generate stat record */
+                     if (t->stat != 0)
+@@ -1345,11 +1344,14 @@ size_t answer_request(struct dns_header
+                           ok = 0;
+                       }
+ #endif
+-                    if (ok && add_resource_record(header, limit, &trunc, nameoffset, &ansp, 
+-                                                  ttl, NULL,
+-                                                  T_TXT, t->class, "t", t->len, t->txt))
+-                      anscount++;
+-
++                    if (ok)
++                      {
++                        log_query(F_CONFIG | F_RRNAME, name, NULL, "<TXT>");
++                        if (add_resource_record(header, limit, &trunc, nameoffset, &ansp, 
++                                                ttl, NULL,
++                                                T_TXT, t->class, "t", t->len, t->txt))
++                          anscount++;
++                      }
+                   }
+               }
+           }
+@@ -1357,12 +1359,19 @@ size_t answer_request(struct dns_header
+       if (qclass == C_CHAOS)
+       {
+-        /* don't forward *.bind and *.server chaos queries */
++        /* don't forward *.bind and *.server chaos queries - always reply with NOTIMP */
+         if (hostname_issubdomain("bind", name) || hostname_issubdomain("server", name))
+           {
+             if (!ans)
+-              notimp = 1, auth = 0;
+-            ans = 1;
++              {
++                notimp = 1, auth = 0;
++                if (!dryrun)
++                  {
++                     addr.addr.rcode.rcode = NOTIMP;
++                     log_query(F_CONFIG | F_RCODE, name, &addr, NULL);
++                  }
++                ans = 1;
++              }
+           }
+       }