mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 11:15:54 +03:00
[PR #2583] [MERGED] proto: apply timeout to TLS/QUIC/H3 handshake phase #3158
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#3158
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/2583
Author: @japaric
Created: 11/18/2024
Status: ✅ Merged
Merged: 11/27/2024
Merged by: @djc
Base:
main← Head:ja-tls-handshake-timeout📝 Commits (10+)
04905e2conformance: add util/dns to Docker image82d3113conformance: make the low level Container API public1d82a1dconformance: add netcat to client Docker image9f1f508e2e-tests: test client against unresponsive TLS server62affb3proto: apply timeout to TLS handshake phaseea50554extend test to DoT, DoQ and DoH3 protocolsf4fa036proto: apply handshake timeout to DoTb5754e2proto: define constant for TCP handshake timeout4e9ffceproto: apply handshake timeout to QUIC9926433proto: apply timeout to the H3 handshake phase📊 Changes
12 files changed (+185 additions, -24 deletions)
View changed files
📝
conformance/packages/dns-test/src/container.rs(+4 -0)📝
conformance/packages/dns-test/src/docker/client.Dockerfile(+2 -1)📝
conformance/packages/dns-test/src/docker/hickory.Dockerfile(+5 -2)📝
conformance/packages/dns-test/src/lib.rs(+1 -1)📝
crates/proto/src/h2/h2_client_stream.rs(+26 -7)📝
crates/proto/src/h3/h3_client_stream.rs(+23 -3)📝
crates/proto/src/quic/quic_client_stream.rs(+23 -3)📝
crates/proto/src/runtime.rs(+3 -1)📝
crates/proto/src/rustls/tls_stream.rs(+14 -6)📝
crates/proto/src/xfer/mod.rs(+17 -0)➕
tests/e2e-tests/src/client.rs(+66 -0)📝
tests/e2e-tests/src/lib.rs(+1 -0)📄 Description
a timeout is applied to the TCP connection phase but no timeout is applied to TLS handshake. this results in clients "hanging" (blocking forever) when trying to establish a TLS connection to a DNS server.
this PR applies a timeout to the TLS handshake to prevent the problem.
an E2E test has been added to serve as a regression test.
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.