Skip to content

Update hickory-dns monorepo to 0.25.2 #8391

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Jun 23, 2025
Merged

Conversation

oxide-renovate[bot]
Copy link
Contributor

This PR contains the following updates:

Package Type Update Change
hickory-client (source) workspace.dependencies minor 0.24.4 -> 0.25.2
hickory-proto (source) workspace.dependencies minor 0.24.4 -> 0.25.2
hickory-resolver (source) workspace.dependencies minor 0.24.4 -> 0.25.2
hickory-server (source) workspace.dependencies minor 0.24.4 -> 0.25.2

Release Notes

hickory-dns/hickory-dns (hickory-client)

v0.25.2: 0.25.2

Compare Source

What's Changed

v0.25.1: 0.25.1

Compare Source

This is a small patch release to address errors that prevented publication of version 0.25.0 of some crates.

What's Changed

Full Changelog: hickory-dns/hickory-dns@v0.25.0...v0.25.1


Configuration

📅 Schedule: Branch creation - "after 8pm,before 6am" in timezone America/Los_Angeles, Automerge - "after 8pm,before 6am" in timezone America/Los_Angeles.

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@oxide-renovate oxide-renovate bot added the dependencies Pull requests that update a dependency file label Jun 19, 2025
@ahl ahl self-assigned this Jun 20, 2025
@ahl ahl requested a review from iximeow June 20, 2025 21:05
}

let response_records = name_records
let response_records = mr
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@iximeow this is the area where I would particularly appreciate scrutiny. hickory changed from a single query (query()) to multiple queries (queries()). I think I've updated this in a reasonable fashion, but I'm a bit out of my depth here.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think this is reasonable for what it is, but i don't think we should try answering queries with multiple questions unless someone's got a good reason for external DNS to. RFC 9619 is hot off the presses and constrains this to zero or one questions anyway. we're definitely not going to query like this internally, and it seems really unlikely to get queries like this externally.

you may ask, as i did: "but RFC 9619 talks specifically about Opcode 0 (Query), what if the request was for something else? would we be here?": ah, right #6411

i'm going to adjust this to still use queries(), but FORMERR if we get a query with anything other than one question. now can i write a test to hang this comment off of, is the question.. :)

@oxide-renovate
Copy link
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

Comment on lines +46 to +49
resolver_config.add_name_server(NameServerConfig::new(
dns_addr,
hickory_resolver::proto::xfer::Protocol::Udp,
));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

kind of funny but fine: trust_negative_responses "defaults to false" while NameServerConfig::new makes it true. we're only going to query the one resolver so this doesn't change anything in practice.

now that our internal answers are authoritative it'd be a difference if we queried all internal name servers, but even then trusting negative answers seems fine.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ooops... that is a kinds of funny. Nice catch

@@ -63,8 +67,8 @@ impl CustomDnsResolver {
self.dns_addr
}

/// Returns the underlying `TokioAsyncResolver
pub fn resolver(&self) -> &TokioAsyncResolver {
/// Returns the underlying `TokioResolver
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could use a `

.set_rr_type(RecordType::A)
.set_data(Some(RData::A((*addr).into())));
Ok(a)
Ok(Record::from_rdata(name.clone(), 0, RData::A((*addr).into())))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice. i'd wondered why .set_rr_type() was needed when .set_data() follows up with an RData that tells you the type too, and it looks like they solved this by moving around Record innards.

}

let response_records = name_records
let response_records = mr
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i think this is reasonable for what it is, but i don't think we should try answering queries with multiple questions unless someone's got a good reason for external DNS to. RFC 9619 is hot off the presses and constrains this to zero or one questions anyway. we're definitely not going to query like this internally, and it seems really unlikely to get queries like this externally.

you may ask, as i did: "but RFC 9619 talks specifically about Opcode 0 (Query), what if the request was for something else? would we be here?": ah, right #6411

i'm going to adjust this to still use queries(), but FORMERR if we get a query with anything other than one question. now can i write a test to hang this comment off of, is the question.. :)

.map_err(|e| match e.kind() {
ResolveErrorKind::NoRecordsFound { .. }
| ResolveErrorKind::Timeout => CondCheckError::NotYet,
.map_err(|e| match resolve_error_proto_kind(&e) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lookup_ip will error directly with a ProtoError instead of the ResolveErrorKind stuff once hickory-dns 0.26 happens, so we have that to look forward to.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Great... back and forth...

Comment on lines 1109 to 1110
// Otherwise, `NoRecordsFound` means we should either switch to
// AAAA queries (if this was A) or we're done (and failed).
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this is kind of an oddball with the other comments going away, i'll wordsmith.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant to pull that other comment into the body of the if, but forgot

@@ -7,10 +7,11 @@
use anyhow::Context;
use anyhow::anyhow;
use futures::FutureExt;
use hickory_resolver::TokioAsyncResolver;
use hickory_resolver::TokioResolver;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ah, i see, the synchronous Hickory resolver is just gone gone (PR 2515 over there) and names shifted accordingly. good for them!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

everyone loves async

@iximeow iximeow merged commit 2641303 into main Jun 23, 2025
18 checks passed
@iximeow iximeow deleted the renovate/hickory-dns-monorepo branch June 23, 2025 22:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants