[PR #2161] [MERGED] Chained authority implementation #2845

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

📋 Pull Request Information

Original PR: https://github.com/hickory-dns/hickory-dns/pull/2161
Author: @marcus0x62
Created: 2/29/2024
Status: Merged
Merged: 9/27/2024
Merged by: @marcus0x62

Base: mainHead: chained_authority


📝 Commits (3)

  • 6cf8ac9 Server and catalog changes to support chained authorities
  • 4ab00d2 Chained authority
  • b3076d7 Tests for the chained authority

📊 Changes

18 files changed (+781 additions, -229 deletions)

View changed files

📝 bin/src/hickory-dns.rs (+134 -110)
📝 crates/server/src/authority/authority.rs (+35 -0)
📝 crates/server/src/authority/authority_object.rs (+68 -0)
📝 crates/server/src/authority/catalog.rs (+104 -72)
📝 crates/server/src/config/mod.rs (+2 -2)
📝 crates/server/src/store/config.rs (+18 -0)
📝 crates/server/src/store/mod.rs (+1 -0)
📝 crates/server/tests/integration/config_tests.rs (+34 -23)
📝 tests/integration-tests/Cargo.toml (+1 -0)
📝 tests/integration-tests/tests/integration/catalog_tests.rs (+10 -10)
tests/integration-tests/tests/integration/chained_authority_tests.rs (+361 -0)
📝 tests/integration-tests/tests/integration/client_future_tests.rs (+3 -3)
📝 tests/integration-tests/tests/integration/client_tests.rs (+2 -2)
📝 tests/integration-tests/tests/integration/dnssec_client_handle_tests.rs (+1 -1)
📝 tests/integration-tests/tests/integration/lookup_tests.rs (+4 -4)
📝 tests/integration-tests/tests/integration/main.rs (+1 -0)
📝 tests/integration-tests/tests/integration/server_future_tests.rs (+1 -1)
📝 tests/integration-tests/tests/integration/truncation_tests.rs (+1 -1)

📄 Description

This is a standalone PR for the chained authority feature discussed in PR #2113

It implements the cases discussed earlier, including the consult case where an authority can modify an answer -- positive or negative -- from a previous authority, except when LookupControlFlow::Break is returned, which will result in an immediate response being sent.

While working on this, I found that the LookupControlFlow logic in the catalog was spread out and duplicated across more of the code base than it really needed to be, so there's a separate commit here to clean that up. Hopefully it makes reviewing the core changes a bit easier.

closes: #2113


🔄 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/2161 **Author:** [@marcus0x62](https://github.com/marcus0x62) **Created:** 2/29/2024 **Status:** ✅ Merged **Merged:** 9/27/2024 **Merged by:** [@marcus0x62](https://github.com/marcus0x62) **Base:** `main` ← **Head:** `chained_authority` --- ### 📝 Commits (3) - [`6cf8ac9`](https://github.com/hickory-dns/hickory-dns/commit/6cf8ac937414ac986dfe551a17befe6a4d8e047e) Server and catalog changes to support chained authorities - [`4ab00d2`](https://github.com/hickory-dns/hickory-dns/commit/4ab00d2984e38a5cbdfe6ab171e869374c71beb3) Chained authority - [`b3076d7`](https://github.com/hickory-dns/hickory-dns/commit/b3076d7aa6b5ee361791a66a66fcec057e43edda) Tests for the chained authority ### 📊 Changes **18 files changed** (+781 additions, -229 deletions) <details> <summary>View changed files</summary> 📝 `bin/src/hickory-dns.rs` (+134 -110) 📝 `crates/server/src/authority/authority.rs` (+35 -0) 📝 `crates/server/src/authority/authority_object.rs` (+68 -0) 📝 `crates/server/src/authority/catalog.rs` (+104 -72) 📝 `crates/server/src/config/mod.rs` (+2 -2) 📝 `crates/server/src/store/config.rs` (+18 -0) 📝 `crates/server/src/store/mod.rs` (+1 -0) 📝 `crates/server/tests/integration/config_tests.rs` (+34 -23) 📝 `tests/integration-tests/Cargo.toml` (+1 -0) 📝 `tests/integration-tests/tests/integration/catalog_tests.rs` (+10 -10) ➕ `tests/integration-tests/tests/integration/chained_authority_tests.rs` (+361 -0) 📝 `tests/integration-tests/tests/integration/client_future_tests.rs` (+3 -3) 📝 `tests/integration-tests/tests/integration/client_tests.rs` (+2 -2) 📝 `tests/integration-tests/tests/integration/dnssec_client_handle_tests.rs` (+1 -1) 📝 `tests/integration-tests/tests/integration/lookup_tests.rs` (+4 -4) 📝 `tests/integration-tests/tests/integration/main.rs` (+1 -0) 📝 `tests/integration-tests/tests/integration/server_future_tests.rs` (+1 -1) 📝 `tests/integration-tests/tests/integration/truncation_tests.rs` (+1 -1) </details> ### 📄 Description This is a standalone PR for the chained authority feature discussed in [PR #2113](https://github.com/hickory-dns/hickory-dns/pull/2113) It implements the cases discussed earlier, including the consult case where an authority can modify an answer -- positive or negative -- from a previous authority, except when LookupControlFlow::Break is returned, which will result in an immediate response being sent. While working on this, I found that the LookupControlFlow logic in the catalog was spread out and duplicated across more of the code base than it really needed to be, so there's a separate commit here to clean that up. Hopefully it makes reviewing the core changes a bit easier. closes: #2113 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-16 11:11:26 +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#2845
No description provided.