]> git.ipfire.org Git - thirdparty/pdns.git/commitdiff
dnsdist: Set a proper HTTP error code on Proxy Protocol failure
authorRemi Gacogne <remi.gacogne@powerdns.com>
Fri, 6 Jan 2023 10:56:34 +0000 (11:56 +0100)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Wed, 11 Jan 2023 11:28:22 +0000 (12:28 +0100)
pdns/dnsdist.cc
pdns/dnsdistdist/doh.cc

index 0b6aa516f346fc69726ad6bfbba46221aa148859..9f76591b5a27a609d94fe0073f2dbf69c21988b2 100644 (file)
@@ -1460,7 +1460,7 @@ bool assignOutgoingUDPQueryToBackend(std::shared_ptr<DownstreamState>& ds, uint1
       }
     }
     catch (const std::exception& e) {
-      vinfolog("Adding proxy protocol payload to %squery from %s failed: %s", (dq.ids.du ? "DoH" : ""), dq.ids.origDest.toStringWithPort(), e.what());
+      vinfolog("Adding proxy protocol payload to %s query from %s failed: %s", (dq.ids.du ? "DoH" : ""), dq.ids.origDest.toStringWithPort(), e.what());
       return false;
     }
   }
index b66836b3675b949852fd5494da22fac4f93c1214..fd993a25d128095247102435bf18de3f4d5ab189 100644 (file)
@@ -678,7 +678,8 @@ static void processDOHQuery(DOHUnitUniquePtr&& unit)
 
     ComboAddress dest = dq.ids.origDest;
     if (!assignOutgoingUDPQueryToBackend(downstream, htons(queryId), dq, du->query, dest)) {
-            sendDoHUnitToTheMainThread(std::move(du), "DoH internal error");
+      du->status_code = 500;
+      sendDoHUnitToTheMainThread(std::move(du), "DoH internal error");
       return;
     }
   }