From 3aeefc8e9862acac457b0f0202f4c884ff75f931 Mon Sep 17 00:00:00 2001 From: Remi Gacogne Date: Tue, 2 Mar 2021 15:55:04 +0100 Subject: [PATCH] dnsdist: Do not update the TCP error counters on idle states --- pdns/dnsdist-tcp.cc | 13 ++++++++----- pdns/dnsdistdist/dnsdist-tcp-downstream.cc | 2 +- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/pdns/dnsdist-tcp.cc b/pdns/dnsdist-tcp.cc index 0258585445..770d0ef064 100644 --- a/pdns/dnsdist-tcp.cc +++ b/pdns/dnsdist-tcp.cc @@ -935,11 +935,14 @@ void IncomingTCPConnectionState::handleIO(std::shared_ptrd_state == IncomingTCPConnectionState::State::idle || - state->d_state == IncomingTCPConnectionState::State::doingHandshake || - state->d_state != IncomingTCPConnectionState::State::readingProxyProtocolHeader || - state->d_state == IncomingTCPConnectionState::State::waitingForQuery || - state->d_state == IncomingTCPConnectionState::State::readingQuerySize || - state->d_state == IncomingTCPConnectionState::State::readingQuery) { + state->d_state == IncomingTCPConnectionState::State::waitingForQuery) { + /* no need to increase any counters in that case, the client is simply done with us */ + } + else if (state->d_state == IncomingTCPConnectionState::State::doingHandshake || + state->d_state != IncomingTCPConnectionState::State::readingProxyProtocolHeader || + state->d_state == IncomingTCPConnectionState::State::waitingForQuery || + state->d_state == IncomingTCPConnectionState::State::readingQuerySize || + state->d_state == IncomingTCPConnectionState::State::readingQuery) { ++state->d_ci.cs->tcpDiedReadingQuery; } else if (state->d_state == IncomingTCPConnectionState::State::sendingResponse) { diff --git a/pdns/dnsdistdist/dnsdist-tcp-downstream.cc b/pdns/dnsdistdist/dnsdist-tcp-downstream.cc index 770cfa6d09..3d2a2935e2 100644 --- a/pdns/dnsdistdist/dnsdist-tcp-downstream.cc +++ b/pdns/dnsdistdist/dnsdist-tcp-downstream.cc @@ -163,7 +163,7 @@ void TCPConnectionToBackend::handleIO(std::shared_ptr& c if (conn->d_state == State::sendingQueryToBackend) { ++conn->d_ds->tcpDiedSendingQuery; } - else { + else if (conn->d_state != State::idle) { ++conn->d_ds->tcpDiedReadingResponse; } -- 2.47.2