From 8acdc3ede78da68d78375d6800face5304d2180a Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sun, 4 Jul 2021 23:12:14 +0100 Subject: [PATCH] Add calls to dump internally generated answers for dumpmask=0x0002 --- src/forward.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/forward.c b/src/forward.c index a05ff48..7545abc 100644 --- a/src/forward.c +++ b/src/forward.c @@ -1584,6 +1584,9 @@ void receive_query(struct listener *listen, time_t now) if (m >= 1) { +#ifdef HAVE_DUMPFILE + dump_packet(DUMP_REPLY, daemon->packet, m, NULL, &source_addr); +#endif send_from(listen->fd, option_bool(OPT_NOWILD) || option_bool(OPT_CLEVERBIND), (char *)header, m, &source_addr, &dst_addr, if_index); daemon->metrics[METRIC_DNS_LOCAL_ANSWERED]++; @@ -1597,6 +1600,9 @@ void receive_query(struct listener *listen, time_t now) local_auth, do_bit, have_pseudoheader); if (m >= 1) { +#ifdef HAVE_DUMPFILE + dump_packet(DUMP_REPLY, daemon->packet, m, NULL, &source_addr); +#endif #if defined(HAVE_CONNTRACK) && defined(HAVE_UBUS) if (local_auth) if (option_bool(OPT_CMARK_ALST_EN) && have_mark && ((u32)mark & daemon->allowlist_mask)) @@ -1611,15 +1617,18 @@ void receive_query(struct listener *listen, time_t now) else { int ad_reqd = do_bit; - /* RFC 6840 5.7 */ + /* RFC 6840 5.7 */ if (header->hb4 & HB4_AD) ad_reqd = 1; - + m = answer_request(header, ((char *) header) + udp_size, (size_t)n, dst_addr_4, netmask, now, ad_reqd, do_bit, have_pseudoheader); if (m >= 1) { +#ifdef HAVE_DUMPFILE + dump_packet(DUMP_REPLY, daemon->packet, m, NULL, &source_addr); +#endif #if defined(HAVE_CONNTRACK) && defined(HAVE_UBUS) if (option_bool(OPT_CMARK_ALST_EN) && have_mark && ((u32)mark & daemon->allowlist_mask)) report_addresses(header, m, mark);