mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 11:15:54 +03:00
[PR #2964] [MERGED] proto & server: update message signature repr #3453
Labels
No labels
blocked
breaking-change
bug
bug:critical
bug:tests
cleanup
compliance
compliance
compliance
crate:all
crate:client
crate:native-tls
crate:proto
crate:recursor
crate:resolver
crate:resolver
crate:rustls
crate:server
crate:util
dependencies
docs
duplicate
easy
easy
enhance
enhance
enhance
feature:dns-over-https
feature:dns-over-quic
feature:dns-over-tls
feature:dnsssec
feature:global_lb
feature:mdns
feature:tsig
features:edns
has workaround
ops
perf
platform:WASM
platform:android
platform:fuchsia
platform:linux
platform:macos
platform:windows
pull-request
question
test
tools
tools
trust
unclear
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/hickory-dns#3453
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/hickory-dns/hickory-dns/pull/2964
Author: @cpu
Created: 5/4/2025
Status: ✅ Merged
Merged: 5/5/2025
Merged by: @djc
Base:
main← Head:cpu-update-message-sig_dev📝 Commits (8)
96719d6proto: fix query_count() rustdoc commentcd67653server/store: fix InMemoryAuthority comment typo94145easerver/store: remove commented out SqliteAuthority code227974eproto: rename MessageParts sig0 field -> signature0f704f4proto: UpdateMessage sig0 fn -> signature6cb2cf7server: MessageRequest/UpdateRequest sig0 -> signature2bff2fdserver: MessageResponse(Builder) sig0 -> signatureed656e1proto & server: update message signature repr📊 Changes
11 files changed (+627 additions, -201 deletions)
View changed files
📝
crates/proto/src/dnssec/rdata/tsig.rs(+3 -6)📝
crates/proto/src/dnssec/signer.rs(+18 -6)📝
crates/proto/src/dnssec/tsig.rs(+9 -7)📝
crates/proto/src/op/header.rs(+1 -1)📝
crates/proto/src/op/message.rs(+519 -103)📝
crates/proto/src/op/mod.rs(+3 -1)📝
crates/proto/src/op/update_message.rs(+6 -6)📝
crates/server/src/authority/message_request.rs(+13 -12)📝
crates/server/src/authority/message_response.rs(+10 -10)📝
crates/server/src/store/in_memory/mod.rs(+1 -1)📝
crates/server/src/store/sqlite/mod.rs(+44 -48)📄 Description
This branch refactors
Messagesignature representation with anenum.Previously message signatures were represented by a
Vec<Record>that (based on the parsing logic) could hold:The existing API for accessing the fields referred to SIG(0) RRs even when it could return TSIG RRs (based on this comment I believe this was an intentional choice to maintain semver). It also used a
Veceven when only one sig record of a given type would be present.This branch refactors to add a new
MessageSignatureenum that better encapsulates the valid states at the cost of a breaking API change. As a result, theMessage::read_records()parsing logic , and the Sqlite authority SIG(0) verifying logic can also be simplified. Some small & insignificant tidying commits come along for the ride and are separated up front.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.