From: Remi Gacogne Date: Fri, 14 Nov 2025 09:43:10 +0000 (+0100) Subject: dnsdist: Clarify that our DoQ's `handleResponse` consumes the response X-Git-Tag: rec-5.4.0-alpha1~77^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F16504%2Fhead;p=thirdparty%2Fpdns.git dnsdist: Clarify that our DoQ's `handleResponse` consumes the response Signed-off-by: Remi Gacogne --- diff --git a/pdns/dnsdistdist/doq.cc b/pdns/dnsdistdist/doq.cc index d2aa389623..e4bb136aa2 100644 --- a/pdns/dnsdistdist/doq.cc +++ b/pdns/dnsdistdist/doq.cc @@ -291,7 +291,7 @@ static bool tryWriteResponse(Connection& conn, const uint64_t streamID, PacketBu return true; } -static void handleResponse(DOQFrontend& frontend, Connection& conn, const uint64_t streamID, PacketBuffer& response) +static void handleResponse(DOQFrontend& frontend, Connection& conn, const uint64_t streamID, PacketBuffer&& response) { if (response.empty()) { ++frontend.d_errorResponses; @@ -403,7 +403,7 @@ static void processDOQQuery(DOQUnitUniquePtr&& doqUnit) const auto handleImmediateResponse = [](DOQUnitUniquePtr&& unit, [[maybe_unused]] const char* reason) { DEBUGLOG("handleImmediateResponse() reason=" << reason); auto conn = getConnection(unit->dsc->df->d_server_config->d_connections, unit->serverConnID); - handleResponse(*unit->dsc->df, *conn, unit->streamID, unit->response); + handleResponse(*unit->dsc->df, *conn, unit->streamID, std::move(unit->response)); unit->ids.doqu.reset(); }; @@ -584,7 +584,7 @@ static void flushResponses(pdns::channel::Receiver& receiver) auto unit = std::move(*tmp); auto conn = getConnection(unit->dsc->df->d_server_config->d_connections, unit->serverConnID); if (conn) { - handleResponse(*unit->dsc->df, *conn, unit->streamID, unit->response); + handleResponse(*unit->dsc->df, *conn, unit->streamID, std::move(unit->response)); } } catch (const std::exception& e) {