mirror of
https://github.com/hickory-dns/hickory-dns.git
synced 2026-04-25 03:05:51 +03:00
[PR #2440] [CLOSED] Record and replay traffic from tests against internet DNS servers #3044
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#3044
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/2440
Author: @divergentdave
Created: 9/7/2024
Status: ❌ Closed
Base:
main← Head:david/record-internet-tests📝 Commits (4)
28361bdInitial implementation of internet traffic replayb604b2aAdd support for TCP5976098Use recorder in unit tests3bdb6ccUse localhost in UDP timeout tests📊 Changes
54 files changed (+38197 additions, -74 deletions)
View changed files
📝
Cargo.lock(+33 -0)📝
Cargo.toml(+3 -0)📝
crates/client/Cargo.toml(+1 -0)📝
crates/client/src/client/async_client.rs(+12 -1)📝
crates/proto/src/rr/rdata/sshfp.rs(+13 -13)📝
crates/resolver/src/name_server/name_server.rs(+12 -1)📝
crates/resolver/src/name_server/name_server_pool.rs(+16 -1)📝
tests/integration-tests/tests/integration/client_future_tests.rs(+32 -9)📝
tests/integration-tests/tests/integration/client_tests.rs(+141 -29)📝
tests/integration-tests/tests/integration/dnssec_client_handle_tests.rs(+77 -20)➕
tests/test-data/recordings/async_client_google_example_com.json(+95 -0)➕
tests/test-data/recordings/client_future_tests_test_query_tcp_ipv4_all_algos.json(+184 -0)➕
tests/test-data/recordings/client_future_tests_test_query_tcp_ipv4_no_ed25519.json(+184 -0)➕
tests/test-data/recordings/client_future_tests_test_query_udp_ipv4_all_algos.json(+289 -0)➕
tests/test-data/recordings/client_future_tests_test_query_udp_ipv4_no_ed25519.json(+289 -0)➕
tests/test-data/recordings/client_tests_test_nsec3_no_data_all_algos.json(+1586 -0)➕
tests/test-data/recordings/client_tests_test_nsec3_no_data_no_ed25519.json(+1564 -0)➕
tests/test-data/recordings/client_tests_test_nsec3_nxdomain_all_algos.json(+2330 -0)➕
tests/test-data/recordings/client_tests_test_nsec3_nxdomain_no_ed25519.json(+2298 -0)➕
tests/test-data/recordings/client_tests_test_nsec3_query_name_is_soa_name_all_algos.json(+2155 -0)...and 34 more files
📄 Description
This addresses #2279 by adding a test utility that can save and replay transactions with internet-based DNS servers. If the environment variable
DNS_RECORDERis set torecord, it will make a connection to the remote server, record everything it proxies, and save it to a JSON file. By default, if the environment variable is not set, it will read from that file, and replay responses to matching queries. Iftext2pcapandtsharkis present, they will be used to dissect the messages, and the dissection is saved alongside the raw bytes, to help explain changes when a test is re-recorded.🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.