]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Do not update the TCP error counters on idle states 10131/head
authorRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 2 Mar 2021 14:55:04 +0000 (15:55 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Tue, 2 Mar 2021 14:55:04 +0000 (15:55 +0100)
pdns/dnsdist-tcp.cc
pdns/dnsdistdist/dnsdist-tcp-downstream.cc

index 0258585445737441e2f4b2329a0db67fe99fb70a..770d0ef06400adbe889556ee57171b0981bc0db3 100644 (file)
@@ -935,11 +935,14 @@ void IncomingTCPConnectionState::handleIO(std::shared_ptr<IncomingTCPConnectionS
          Let's just drop the connection
       */
       if (state->d_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) {
index 770cfa6d0919d9104017ca4dcf807ddfba7290eb..3d2a2935e2752dff83d5c5308cd9dc04fe31ad22 100644 (file)
@@ -163,7 +163,7 @@ void TCPConnectionToBackend::handleIO(std::shared_ptr<TCPConnectionToBackend>& c
       if (conn->d_state == State::sendingQueryToBackend) {
         ++conn->d_ds->tcpDiedSendingQuery;
       }
-      else {
+      else if (conn->d_state != State::idle) {
         ++conn->d_ds->tcpDiedReadingResponse;
       }