mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 03:05:51 +03:00
[PR #1478] [MERGED] Use Stream instead of Future for resolver #2359
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#2359
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/1478
Author: @trinity-1686a
Created: 5/4/2021
Status: ✅ Merged
Merged: 5/22/2021
Merged by: @bluejekyll
Base:
main← Head:feature/stream-response📝 Commits (10+)
7624761replace futures of dns responses with stream in proto9e33886replace futures of dns responses with stream in https and clientd2b8b93implement usage of future in resolver and integration test286d046add support for stream using mpsc for tcp multiplexer9efeeafadd zone_transfert helper to client88311b9minor changes1a2242dupdate documentation to reflect usage of streams246f592add documentation for zone_transfert()466495aremove multi_answer flaga712fb4fix minimum version and import on wrong feature flag📊 Changes
35 files changed (+3464 additions, -406 deletions)
View changed files
📝
Makefile.toml(+2 -1)📝
crates/client/Cargo.toml(+2 -1)📝
crates/client/src/client/async_client.rs(+504 -5)📝
crates/client/src/client/async_secure_client.rs(+2 -2)📝
crates/client/src/client/client.rs(+52 -8)📝
crates/client/src/client/memoize_client_handle.rs(+30 -21)📝
crates/client/src/client/mod.rs(+3 -3)➖
crates/client/src/client/rc_future.rs(+0 -114)➕
crates/client/src/client/rc_stream.rs(+122 -0)📝
crates/client/src/op/update_message.rs(+46 -1)📝
crates/proto/Cargo.toml(+1 -1)📝
crates/proto/src/https/https_client_stream.rs(+7 -6)📝
crates/proto/src/rr/record_type.rs(+1 -0)📝
crates/proto/src/tests/udp.rs(+3 -2)📝
crates/proto/src/udp/udp_client_stream.rs(+2 -2)📝
crates/proto/src/xfer/dns_exchange.rs(+8 -8)📝
crates/proto/src/xfer/dns_handle.rs(+3 -3)📝
crates/proto/src/xfer/dns_multiplexer.rs(+278 -12)📝
crates/proto/src/xfer/dns_response.rs(+29 -24)📝
crates/proto/src/xfer/dnssec_dns_handle.rs(+56 -55)...and 15 more files
📄 Description
replace #1466, and maybe #1337
Use Streams instead of Futures for most of resolver (still use Future for certain user-facing functions that should always return a single response)
Also add a
zone_transfer()on Client to make zone transfer easier.Most types/variables names and documentation should have been updated to match with if it's a stream or a future
Some tests should be added, like an IXFR query against Bind using
zone_transfer(), and a multi-message zone transfer.PS: I'm sorry if I bother you with multiple large PRs, do tell if I'm getting annoying.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.