[PR #1583] [MERGED] Add CSYNC record from RFC7477 #2437

Closed
opened 2026-03-16 08:53:50 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/hickory-dns/hickory-dns/pull/1583
Author: @frelon
Created: 11/14/2021
Status: Merged
Merged: 11/21/2021
Merged by: @bluejekyll

Base: mainHead: rfc-7477-csync


📝 Commits (2)

  • c7b9ebe Add CSYNC record from RFC7477
  • 196f18a Merge branch 'main' into rfc-7477-csync

📊 Changes

14 files changed (+599 additions, -183 deletions)

View changed files

📝 README.md (+1 -0)
📝 crates/client/src/serialize/txt/parse_rdata.rs (+70 -0)
crates/client/src/serialize/txt/rdata_parsers/csync.rs (+62 -0)
📝 crates/client/src/serialize/txt/rdata_parsers/mod.rs (+1 -0)
📝 crates/proto/src/error.rs (+5 -0)
📝 crates/proto/src/rr/dnssec/nsec3.rs (+2 -0)
📝 crates/proto/src/rr/dnssec/rdata/nsec.rs (+4 -4)
📝 crates/proto/src/rr/dnssec/rdata/nsec3.rs (+4 -178)
📝 crates/proto/src/rr/mod.rs (+1 -0)
crates/proto/src/rr/rdata/csync.rs (+200 -0)
📝 crates/proto/src/rr/rdata/mod.rs (+2 -0)
📝 crates/proto/src/rr/record_data.rs (+28 -1)
📝 crates/proto/src/rr/record_type.rs (+9 -0)
crates/proto/src/rr/type_bit_map.rs (+210 -0)

📄 Description

The CSYNC record is used to synchronize records (mostly NS and glue) to the parent zone.

Had to move nsec3::encode_type_bit_maps and decode_type_bit_maps in order to make it work with/without the dnssec-feature.

Tested with the following zone:

@   IN          SOA     trust-dns.org. root.trust-dns.org. (
                                199609203       ; Serial
                                28800   ; Refresh
                                7200    ; Retry
                                604800  ; Expire
                                86400)  ; Minimum TTL

                CSYNC   66  3   A NS MX

And get the following output using resolve util:

$ ./target/release/resolve -n 127.0.0.1:24141 -t CSYNC example.com
Querying for example.com CSYNC from tcp:127.0.0.1:24141, udp:127.0.0.1:24141
Success for query name: example.com type: CSYNC class: IN mdns_unicast_response: false
        example.com. 86400 IN CSYNC 66 3 A NS MX

🔄 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/1583 **Author:** [@frelon](https://github.com/frelon) **Created:** 11/14/2021 **Status:** ✅ Merged **Merged:** 11/21/2021 **Merged by:** [@bluejekyll](https://github.com/bluejekyll) **Base:** `main` ← **Head:** `rfc-7477-csync` --- ### 📝 Commits (2) - [`c7b9ebe`](https://github.com/hickory-dns/hickory-dns/commit/c7b9ebe1548302f1ad36415018d08fac236f9e98) Add CSYNC record from RFC7477 - [`196f18a`](https://github.com/hickory-dns/hickory-dns/commit/196f18ad575929ab630917f032ea277de5d33aa6) Merge branch 'main' into rfc-7477-csync ### 📊 Changes **14 files changed** (+599 additions, -183 deletions) <details> <summary>View changed files</summary> 📝 `README.md` (+1 -0) 📝 `crates/client/src/serialize/txt/parse_rdata.rs` (+70 -0) ➕ `crates/client/src/serialize/txt/rdata_parsers/csync.rs` (+62 -0) 📝 `crates/client/src/serialize/txt/rdata_parsers/mod.rs` (+1 -0) 📝 `crates/proto/src/error.rs` (+5 -0) 📝 `crates/proto/src/rr/dnssec/nsec3.rs` (+2 -0) 📝 `crates/proto/src/rr/dnssec/rdata/nsec.rs` (+4 -4) 📝 `crates/proto/src/rr/dnssec/rdata/nsec3.rs` (+4 -178) 📝 `crates/proto/src/rr/mod.rs` (+1 -0) ➕ `crates/proto/src/rr/rdata/csync.rs` (+200 -0) 📝 `crates/proto/src/rr/rdata/mod.rs` (+2 -0) 📝 `crates/proto/src/rr/record_data.rs` (+28 -1) 📝 `crates/proto/src/rr/record_type.rs` (+9 -0) ➕ `crates/proto/src/rr/type_bit_map.rs` (+210 -0) </details> ### 📄 Description The CSYNC record is used to synchronize records (mostly NS and glue) to the parent zone. Had to move nsec3::encode_type_bit_maps and decode_type_bit_maps in order to make it work with/without the dnssec-feature. Tested with the following zone: ``` @ IN SOA trust-dns.org. root.trust-dns.org. ( 199609203 ; Serial 28800 ; Refresh 7200 ; Retry 604800 ; Expire 86400) ; Minimum TTL CSYNC 66 3 A NS MX ``` And get the following output using resolve util: ``` $ ./target/release/resolve -n 127.0.0.1:24141 -t CSYNC example.com Querying for example.com CSYNC from tcp:127.0.0.1:24141, udp:127.0.0.1:24141 Success for query name: example.com type: CSYNC class: IN mdns_unicast_response: false example.com. 86400 IN CSYNC 66 3 A NS MX ``` --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-03-16 08:53:50 +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#2437
No description provided.