[PR #2953] [MERGED] Send error responses in two more cases #3445

Closed
opened 2026-03-16 11:44:10 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/hickory-dns/hickory-dns/pull/2953
Author: @divergentdave
Created: 4/28/2025
Status: Merged
Merged: 4/30/2025
Merged by: @djc

Base: mainHead: david/server-more-error-responses


📝 Commits (5)

  • 7de2811 Use Queries in response handlers
  • 3566efc Copy queries to error responses
  • acd4d87 Send REFUSED response to disallowed clients
  • d2836da Send SERVFAIL when response encoding fails
  • c0f83e5 Use structured logging

📊 Changes

7 files changed (+106 additions, -36 deletions)

View changed files

📝 bin/tests/integration/server_harness/mod.rs (+7 -9)
📝 crates/server/src/authority/message_request.rs (+5 -0)
📝 crates/server/src/server/h2_handler.rs (+12 -5)
📝 crates/server/src/server/h3_handler.rs (+11 -3)
📝 crates/server/src/server/mod.rs (+28 -7)
📝 crates/server/src/server/quic_handler.rs (+12 -5)
📝 crates/server/src/server/response_handler.rs (+31 -7)

📄 Description

This sends a REFUSED response to clients that are not allowed to make requests, and sends a SERVFAIL response if response encoding otherwise fails for any reason. With these changes, the server will send some reply to requests in almost all cases (except for extreme edge cases like requests that don't even contain a full header). The relevant code path runs through handle_request(), <MessageRequest as BinDecodable>::read(), <Catalog as RequestHandler>::handle_request(), various implementations of ResponseHandler, etc. This closes #2572.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/hickory-dns/hickory-dns/pull/2953 **Author:** [@divergentdave](https://github.com/divergentdave) **Created:** 4/28/2025 **Status:** ✅ Merged **Merged:** 4/30/2025 **Merged by:** [@djc](https://github.com/djc) **Base:** `main` ← **Head:** `david/server-more-error-responses` --- ### 📝 Commits (5) - [`7de2811`](https://github.com/hickory-dns/hickory-dns/commit/7de2811d81836e89ba26b7e81050cbefe794fb5b) Use Queries in response handlers - [`3566efc`](https://github.com/hickory-dns/hickory-dns/commit/3566efce3f4b72290b1d16dd07a6ecd8d7ffc3c6) Copy queries to error responses - [`acd4d87`](https://github.com/hickory-dns/hickory-dns/commit/acd4d87e0a8a6cfd2fd406f4b60f0813078e8356) Send REFUSED response to disallowed clients - [`d2836da`](https://github.com/hickory-dns/hickory-dns/commit/d2836dade4741a150c537d650e973f3e30ae93a5) Send SERVFAIL when response encoding fails - [`c0f83e5`](https://github.com/hickory-dns/hickory-dns/commit/c0f83e5f06dcad957598ef0a1cd2e5d264ea1c4b) Use structured logging ### 📊 Changes **7 files changed** (+106 additions, -36 deletions) <details> <summary>View changed files</summary> 📝 `bin/tests/integration/server_harness/mod.rs` (+7 -9) 📝 `crates/server/src/authority/message_request.rs` (+5 -0) 📝 `crates/server/src/server/h2_handler.rs` (+12 -5) 📝 `crates/server/src/server/h3_handler.rs` (+11 -3) 📝 `crates/server/src/server/mod.rs` (+28 -7) 📝 `crates/server/src/server/quic_handler.rs` (+12 -5) 📝 `crates/server/src/server/response_handler.rs` (+31 -7) </details> ### 📄 Description This sends a REFUSED response to clients that are not allowed to make requests, and sends a SERVFAIL response if response encoding otherwise fails for any reason. With these changes, the server will send some reply to requests in almost all cases (except for extreme edge cases like requests that don't even contain a full header). The relevant code path runs through `handle_request()`, `<MessageRequest as BinDecodable>::read()`, `<Catalog as RequestHandler>::handle_request()`, various implementations of `ResponseHandler`, etc. This closes #2572. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-16 11:44:10 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/hickory-dns#3445
No description provided.