From 3692220de3633434cb88556132cbb77255440ce3 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Thu, 17 Aug 2023 11:19:15 +0200 Subject: [PATCH] dnsdist: Properly record self-answered UDP responses with recvmmsg Responses sent directly from dnsdist, without reaching out to a backend (self-generated and cache hits answers, mostly) where not properly accounted for in frontend metrics, ring buffer entries and latency computation when recvmmsg/sendmmsg support was enabled via `setUDPMultipleMessagesVectorSize()`. --- pdns/dnsdist.cc | 1 + 1 file changed, 1 insertion(+) diff --git a/pdns/dnsdist.cc b/pdns/dnsdist.cc index 62fef05a2e..4f27e84043 100644 --- a/pdns/dnsdist.cc +++ b/pdns/dnsdist.cc @@ -1688,6 +1688,7 @@ static void processUDPQuery(ClientState& cs, LocalHolders& holders, const struct if (dq.ids.delayMsec == 0 && responsesVect != nullptr) { queueResponse(cs, query, dest, remote, responsesVect[*queuedResponses], respIOV, respCBuf); (*queuedResponses)++; + handleResponseSent(dq.ids.qname, dq.ids.qtype, 0., remote, ComboAddress(), query.size(), *dh, dnsdist::Protocol::DoUDP, dnsdist::Protocol::DoUDP, false); return; } #endif /* defined(HAVE_RECVMMSG) && defined(HAVE_SENDMMSG) && defined(MSG_WAITFORONE) */ -- 2.47.2