[PR #2888] [MERGED] Recursor: refactor handling of glue records in ns_pool_for_zone() #3401

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

📋 Pull Request Information

Original PR: https://github.com/hickory-dns/hickory-dns/pull/2888
Author: @divergentdave
Created: 3/26/2025
Status: Merged
Merged: 3/29/2025
Merged by: @djc

Base: mainHead: david/recursor-glue-refactor


📝 Commits (6)

  • f6a913c Fix variable names
  • e64aed4 Return response from RecursorDnsHandle::lookup()
  • 15e3181 Simplify processing of glue addresses
  • 21deaf9 Store glue records in a map
  • 285ea1e Extract add_glue_to_map()
  • f01f7ce Collect glue IPs directly from the response

📊 Changes

1 file changed (+77 additions, -50 deletions)

View changed files

📝 crates/recursor/src/recursor_dns_handle.rs (+77 -50)

📄 Description

This PR refactors RecursorDnsHandle to retrieve glue records directly from responses to NS queries, rather than solely relying on DnsLru to store the glue records, and return them to fetches using A/AAAA queries. This is a prerequisite to switching to atomically caching responses, as discussed in #2602.

I tested this by deleting the self.record_cache.get() calls, and confirming that conformance tests still pass.


🔄 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/2888 **Author:** [@divergentdave](https://github.com/divergentdave) **Created:** 3/26/2025 **Status:** ✅ Merged **Merged:** 3/29/2025 **Merged by:** [@djc](https://github.com/djc) **Base:** `main` ← **Head:** `david/recursor-glue-refactor` --- ### 📝 Commits (6) - [`f6a913c`](https://github.com/hickory-dns/hickory-dns/commit/f6a913c8cdfc5b15a97822844b375bff05d76393) Fix variable names - [`e64aed4`](https://github.com/hickory-dns/hickory-dns/commit/e64aed40f2cee31f459546c03e41e18956b4b0da) Return response from RecursorDnsHandle::lookup() - [`15e3181`](https://github.com/hickory-dns/hickory-dns/commit/15e31812355430da8d1f6dea6a827ffffe9f643e) Simplify processing of glue addresses - [`21deaf9`](https://github.com/hickory-dns/hickory-dns/commit/21deaf9d5e9408eb9763841c89d64b49fcb01e80) Store glue records in a map - [`285ea1e`](https://github.com/hickory-dns/hickory-dns/commit/285ea1e5ef1a445870d2bee9cd62853a8337bb33) Extract add_glue_to_map() - [`f01f7ce`](https://github.com/hickory-dns/hickory-dns/commit/f01f7ceee0eb560bdeb2669acc9999202f5fcb7c) Collect glue IPs directly from the response ### 📊 Changes **1 file changed** (+77 additions, -50 deletions) <details> <summary>View changed files</summary> 📝 `crates/recursor/src/recursor_dns_handle.rs` (+77 -50) </details> ### 📄 Description This PR refactors `RecursorDnsHandle` to retrieve glue records directly from responses to NS queries, rather than solely relying on `DnsLru` to store the glue records, and return them to fetches using A/AAAA queries. This is a prerequisite to switching to atomically caching responses, as discussed in #2602. I tested this by deleting the `self.record_cache.get()` calls, and confirming that conformance tests still pass. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-16 11:41:44 +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#3401
No description provided.