diff --git a/src/dump.c b/src/dump.c index d1442f0..5911c90 100644 --- a/src/dump.c +++ b/src/dump.c @@ -285,7 +285,7 @@ static void do_dump_packet(int mask, void *packet, size_t len, (proto == IPPROTO_UDP && !read_write(daemon->dumpfd, (void *)&udp, sizeof(udp), 0)) || !read_write(daemon->dumpfd, (void *)packet, len, 0)) my_syslog(LOG_ERR, _("failed to write packet dump")); - else if (option_bool(OPT_EXTRALOG)) + else if (option_bool(OPT_EXTRALOG) && (mask & 0x00ff)) my_syslog(LOG_INFO, _("%u dumping packet %u mask 0x%04x"), daemon->log_display_id, ++packet_count, mask); else my_syslog(LOG_INFO, _("dumping packet %u mask 0x%04x"), ++packet_count, mask); diff --git a/src/forward.c b/src/forward.c index 85e6c81..1699670 100644 --- a/src/forward.c +++ b/src/forward.c @@ -1447,9 +1447,6 @@ void return_reply(time_t now, struct frec *forward, struct dns_header *header, s if (src->fd != -1) { -#ifdef HAVE_DUMPFILE - dump_packet_udp(DUMP_REPLY, daemon->packet, (size_t)nn, NULL, &src->source, src->fd); -#endif send_from(src->fd, option_bool(OPT_NOWILD) || option_bool (OPT_CLEVERBIND), daemon->packet, nn, &src->source, &src->dest, src->iface); @@ -1459,6 +1456,10 @@ void return_reply(time_t now, struct frec *forward, struct dns_header *header, s daemon->log_source_addr = &src->source; log_query(F_UPSTREAM, "query", NULL, "duplicate", 0); } + +#ifdef HAVE_DUMPFILE + dump_packet_udp(DUMP_REPLY, daemon->packet, (size_t)nn, NULL, &src->source, src->fd); +#endif } } }