[PR #1710] [MERGED] A Trust DNS based Recursor #2538

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

📋 Pull Request Information

Original PR: https://github.com/hickory-dns/hickory-dns/pull/1710
Author: @bluejekyll
Created: 5/22/2022
Status: Merged
Merged: 8/24/2022
Merged by: @bluejekyll

Base: mainHead: recursor


📝 Commits (10+)

  • f75617e add the recursor crate
  • ba20ec6 remove DnsRequestOptions from AsyncResolver::lookup
  • 61d004e declare initial recursive lookup
  • a6bd76e update recursor to use clap
  • 1fcd7df adjust interfaces for recursor
  • 27e3edd initial layout of recursor
  • 427adff add NS search method
  • eb3443a initial recursive resolution working
  • 78bd2cb cleanup some inaccurate documentation
  • 69fde60 add initial RecursiveAuthority

📊 Changes

59 files changed (+1964 additions, -135 deletions)

View changed files

📝 CHANGELOG.md (+1 -0)
📝 Cargo.lock (+38 -0)
📝 Cargo.toml (+1 -0)
📝 Makefile.toml (+1 -1)
📝 bin/Cargo.toml (+9 -2)
📝 bin/src/named.rs (+11 -1)
📝 crates/proto/src/op/header.rs (+2 -1)
📝 crates/proto/src/op/message.rs (+19 -6)
📝 crates/proto/src/rr/record_data.rs (+5 -0)
📝 crates/proto/src/xfer/dns_handle.rs (+1 -1)
📝 crates/proto/src/xfer/dns_request.rs (+4 -2)
📝 crates/proto/src/xfer/dns_response.rs (+3 -6)
📝 crates/recursor/Cargo.toml (+23 -25)
crates/recursor/LICENSE-APACHE (+202 -0)
crates/recursor/LICENSE-MIT (+20 -0)
crates/recursor/README.md (+13 -0)
crates/recursor/src/error.rs (+167 -0)
crates/recursor/src/lib.rs (+37 -0)
crates/recursor/src/recursor.rs (+459 -0)
crates/recursor/src/recursor_pool.rs (+121 -0)

...and 39 more files

📄 Description

This is pretty rough right now, probably a lot of work to do, but it does work for some basic queries, for example:

cargo run --all-features --bin recurse -- --debug -n 192.5.5.241:53 -t A www.example.com.

need some cleanup on output, but this is the current result:

Recursing for www.example.com. A from hints
Success for query Lookup { query: Query { name: Name("www.example.com."), query_type: A, query_class: IN, mdns_unicast_response: false }, records: [Record { name_labels: Name("www.example.com."), rr_type: A, dns_class: IN, ttl: 86400, rdata: Some(A(93.184.216.34)), mdns_cache_flush: false }], valid_until: Instant { t: 808620694303584 } }
        www.example.com. 86400 IN A 93.184.216.34

I don't think this is ready for review yet, lots to cleanup.

fixes: #1440


🔄 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/1710 **Author:** [@bluejekyll](https://github.com/bluejekyll) **Created:** 5/22/2022 **Status:** ✅ Merged **Merged:** 8/24/2022 **Merged by:** [@bluejekyll](https://github.com/bluejekyll) **Base:** `main` ← **Head:** `recursor` --- ### 📝 Commits (10+) - [`f75617e`](https://github.com/hickory-dns/hickory-dns/commit/f75617e80366e53966a88e484accfb8ad096c3b5) add the recursor crate - [`ba20ec6`](https://github.com/hickory-dns/hickory-dns/commit/ba20ec642f5da5bbcd9707ca80c4b6c0bf95b649) remove DnsRequestOptions from AsyncResolver::lookup - [`61d004e`](https://github.com/hickory-dns/hickory-dns/commit/61d004e4a036707fefb40aa51f48984949579ba1) declare initial recursive lookup - [`a6bd76e`](https://github.com/hickory-dns/hickory-dns/commit/a6bd76e55879a35774fa7f70fa159f55568de3d6) update recursor to use clap - [`1fcd7df`](https://github.com/hickory-dns/hickory-dns/commit/1fcd7dfaca01acb2af175c260d6e8edccddd3fc8) adjust interfaces for recursor - [`27e3edd`](https://github.com/hickory-dns/hickory-dns/commit/27e3edd0b52a2ce2a700680f991be696f122bf00) initial layout of recursor - [`427adff`](https://github.com/hickory-dns/hickory-dns/commit/427adff4cb21c6c14a56e168413a3b6a129a9c09) add NS search method - [`eb3443a`](https://github.com/hickory-dns/hickory-dns/commit/eb3443a72b6ffe5b39d0a5195cdaaaea2a5f608f) initial recursive resolution working - [`78bd2cb`](https://github.com/hickory-dns/hickory-dns/commit/78bd2cb8a2aa19edfea271f433b82851c7f5b0fa) cleanup some inaccurate documentation - [`69fde60`](https://github.com/hickory-dns/hickory-dns/commit/69fde600be0a824349ceec805946ac7cf6f7cde5) add initial RecursiveAuthority ### 📊 Changes **59 files changed** (+1964 additions, -135 deletions) <details> <summary>View changed files</summary> 📝 `CHANGELOG.md` (+1 -0) 📝 `Cargo.lock` (+38 -0) 📝 `Cargo.toml` (+1 -0) 📝 `Makefile.toml` (+1 -1) 📝 `bin/Cargo.toml` (+9 -2) 📝 `bin/src/named.rs` (+11 -1) 📝 `crates/proto/src/op/header.rs` (+2 -1) 📝 `crates/proto/src/op/message.rs` (+19 -6) 📝 `crates/proto/src/rr/record_data.rs` (+5 -0) 📝 `crates/proto/src/xfer/dns_handle.rs` (+1 -1) 📝 `crates/proto/src/xfer/dns_request.rs` (+4 -2) 📝 `crates/proto/src/xfer/dns_response.rs` (+3 -6) 📝 `crates/recursor/Cargo.toml` (+23 -25) ➕ `crates/recursor/LICENSE-APACHE` (+202 -0) ➕ `crates/recursor/LICENSE-MIT` (+20 -0) ➕ `crates/recursor/README.md` (+13 -0) ➕ `crates/recursor/src/error.rs` (+167 -0) ➕ `crates/recursor/src/lib.rs` (+37 -0) ➕ `crates/recursor/src/recursor.rs` (+459 -0) ➕ `crates/recursor/src/recursor_pool.rs` (+121 -0) _...and 39 more files_ </details> ### 📄 Description This is pretty rough right now, probably a lot of work to do, but it does work for some basic queries, for example: `cargo run --all-features --bin recurse -- --debug -n 192.5.5.241:53 -t A www.example.com.` need some cleanup on output, but this is the current result: ```text Recursing for www.example.com. A from hints Success for query Lookup { query: Query { name: Name("www.example.com."), query_type: A, query_class: IN, mdns_unicast_response: false }, records: [Record { name_labels: Name("www.example.com."), rr_type: A, dns_class: IN, ttl: 86400, rdata: Some(A(93.184.216.34)), mdns_cache_flush: false }], valid_until: Instant { t: 808620694303584 } } www.example.com. 86400 IN A 93.184.216.34 ``` I don't think this is ready for review yet, lots to cleanup. fixes: #1440 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-16 10:06: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#2538
No description provided.