]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Add the response code in the packet cache dump 9737/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 16 Nov 2020 11:09:20 +0000 (12:09 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Mon, 16 Nov 2020 11:09:20 +0000 (12:09 +0100)
pdns/Makefile.am
pdns/dnsdist-cache.cc
pdns/dnsdistdist/Makefile.am

index d85f1d7050c1bddcc69abfd18ea1fca516a6bca5..2dad7ca4baade0d393317a8d6c55fba9bf187ad8 100644 (file)
@@ -1523,6 +1523,7 @@ fuzz_target_proxyprotocol_LDFLAGS = $(fuzz_targets_ldflags)
 fuzz_target_proxyprotocol_LDADD = $(fuzz_targets_libs)
 
 fuzz_target_dnsdistcache_SOURCES = \
+       dns.cc dns.hh \
        dnsdist-cache.cc dnsdist-cache.hh \
        dnsdist-ecs.cc dnsdist-ecs.hh \
        dnslabeltext.cc \
index 79f12234f2222b48eb1b167c155a4c7f576fe303..ddf00bfa94d73d4eaa68b25f0f55ae888001b3a9 100644 (file)
@@ -474,7 +474,14 @@ uint64_t DNSDistPacketCache::dump(int fd)
       count++;
 
       try {
-        fprintf(fp.get(), "%s %" PRId64 " %s ; key %" PRIu32 ", length %" PRIu16 ", tcp %d, added %" PRId64 "\n", value.qname.toString().c_str(), static_cast<int64_t>(value.validity - now), QType(value.qtype).getName().c_str(), entry.first, value.len, value.tcp, static_cast<int64_t>(value.added));
+        uint8_t rcode = 0;
+        if (value.len >= sizeof(dnsheader)) {
+          dnsheader dh;
+          memcpy(&dh, value.value.data(), sizeof(dnsheader));
+          rcode = dh.rcode;
+        }
+
+        fprintf(fp.get(), "%s %" PRId64 " %s ; rcode %" PRIu8 ", key %" PRIu32 ", length %" PRIu16 ", tcp %d, added %" PRId64 "\n", value.qname.toString().c_str(), static_cast<int64_t>(value.validity - now), QType(value.qtype).getName().c_str(), rcode, entry.first, value.len, value.tcp, static_cast<int64_t>(value.added));
       }
       catch(...) {
         fprintf(fp.get(), "; error printing '%s'\n", value.qname.empty() ? "EMPTY" : value.qname.toString().c_str());
index 1bea3b333010735a8452785d8bda01b8e1e0ce34..a5f6c811e83cc24b3be9702c7fbb724a0133b2bf 100644 (file)
@@ -210,7 +210,7 @@ testrunner_SOURCES = \
        bpf-filter.cc bpf-filter.hh \
        cachecleaner.hh \
        circular_buffer.hh \
-       dns.hh \
+       dns.cc dns.hh \
        dnscrypt.cc dnscrypt.hh \
        dnsdist-backend.cc \
        dnsdist-cache.cc dnsdist-cache.hh \