- Update to version 2.9.3
Bug Fixes
* TCP Traceroute Fixed: The most important fix in this release
resolves a regression where dnstraceroute with TCP protocol
(-T flag) would immediately fail with "No route to host" errors
During TCP traceroute operations, intermediate hosts send ICMP
Time Exceeded messages when TTL expires, which the TCP stack
interprets as EHOSTUNREACH errors. These errors were being
unconditionally re-raised even in traceroute mode where they're
expected behavior. The fix now properly handles these errors
during traceroute, allowing TCP path discovery to work as
intended.
* QUIC and HTTP/3 Traceroute TTL Control: Previously,
dnstraceroute couldn't control TTL values when using QUIC (-Q)
or HTTP/3 (-3) protocols, basically breaking traceroute
functionality for DoH3 and DoQ. The fix enables proper TTL
manipulation for both protocols, allowing users to trace
network paths to DNS-over-QUIC and DNS-over-HTTP/3 resolvers.
* Timing Accuracy Improvements: Replaced dnspython library
internal timing with Python's perf_counter for response time
measurements across all DNS protocols. This provides more
accurate and consistent latency measurements.
* Better Error Handling for Modern Protocols: Improved error
handling for DoH, DoH3, and DoQ protocols to display
user-friendly error messages instead of Python stack traces.
Connection refused errors are now treated as transient across
all DNS protocols, and transient QUIC connection failures
(UnexpectedEOF exceptions) are handled gracefully, allowing
dnsping to continue with the next attempt.
* DNSSEC Information Display: Added explanation of DNSSEC flags
OBS-URL: https://build.opensuse.org/request/show/1330820
OBS-URL: https://build.opensuse.org/package/show/network/dnsdiag?expand=0&rev=26
- Update to version 2.9.2
Bug Fixes
* Network Resilience: dnsping now survives transient network
errors instead of exiting fatally. When WiFi is toggled,
network cable is unplugged, or the system sleeps/resumes,
dnsping prints the error message and continues with the next
ping attempt, behaving like traditional ping. The fix also
improves error handling and makes it platform-portable.
* Answer Display: The -a flag in dnsping now displays the first
answer from the response regardless of record type, with the
type prepended for clarity
(e.g., [RDATA: CNAME res130.qams5.on.quad9.net.] or
[RDATA: A 142.250.179.174]). Previously it filtered by the
requested type only, which meant CNAME responses were silently
ignored.
* JSONL Output: The -j flag in dnseval now outputs valid JSONL
format with one JSON object per line, instead of
concatenating JSON objects back-to-back. The old format was
not parse-able by standard JSON parsers. Each line can now be
independently parsed with tools like jq.
* NSID Option Consistency: Fixed NSID EDNS option in dnsping to
use bytes instead of string for consistency with the rest of
the codebase and correct wire format.
* Exit Code Handling: All tools now return exit code 0 when
invoked with the --help flag, following standard conventions.
* Race Condition Fix: Fixed a time-of-check to time-of-use race
condition in dnsping that could cause negative sleep duration
in the interruptible sleep loop.
OBS-URL: https://build.opensuse.org/request/show/1327917
OBS-URL: https://build.opensuse.org/package/show/network/dnsdiag?expand=0&rev=24
Forwarded request #1314805 from mnhauke
- Update to version 2.9.1
* Multithreaded DNS Evaluation: dnseval now uses concurrent
evaluation when testing multiple DNS resolvers, improving
evaluation times. The tool employs ThreadPoolExecutor with up
to 10 worker threads for parallel testing while maintaining
thread-safe output handling. Results continue to be displayed
in the same order as the input file.
* Cookie Display Enhancement: DNS COOKIE output in dnsping is
now truncated to 8 hex characters followed by "..." in normal
mode, keeping output compact and readable. Full cookie details
remain available when using verbose mode.
- Switch to pyproject macros.
- Update to version 2.9.0
New Features
* Added --nsid support to dnstraceroute for tracing paths to
anycast instances.
* Added DNS COOKIE support to dnsping (--cookie).
* Added DoQ (DNS over QUIC) and DoH3 (DNS over HTTP/3) protocol
support to dnseval.
* Added cache warmup behavior to dnseval for fair resolver
comparisons.
* Added EDNS flags display in dnseval output.
* Added Python 3.14 support.
Improvements
* Refactored codebase with PEP 8 conventions and comprehensive
type hints.
* Improved CLI error handling and parameter validation across
all tools.
* Enhanced hostname validation to allow RFC-compliant hostnames
OBS-URL: https://build.opensuse.org/request/show/1318249
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/dnsdiag?expand=0&rev=11
- Update to version 2.9.1
* Multithreaded DNS Evaluation: dnseval now uses concurrent
evaluation when testing multiple DNS resolvers, improving
evaluation times. The tool employs ThreadPoolExecutor with up
to 10 worker threads for parallel testing while maintaining
thread-safe output handling. Results continue to be displayed
in the same order as the input file.
* Cookie Display Enhancement: DNS COOKIE output in dnsping is
now truncated to 8 hex characters followed by "..." in normal
mode, keeping output compact and readable. Full cookie details
remain available when using verbose mode.
- Switch to pyproject macros.
- Update to version 2.9.0
New Features
* Added --nsid support to dnstraceroute for tracing paths to
anycast instances.
* Added DNS COOKIE support to dnsping (--cookie).
* Added DoQ (DNS over QUIC) and DoH3 (DNS over HTTP/3) protocol
support to dnseval.
* Added cache warmup behavior to dnseval for fair resolver
comparisons.
* Added EDNS flags display in dnseval output.
* Added Python 3.14 support.
Improvements
* Refactored codebase with PEP 8 conventions and comprehensive
type hints.
* Improved CLI error handling and parameter validation across
all tools.
* Enhanced hostname validation to allow RFC-compliant hostnames
OBS-URL: https://build.opensuse.org/request/show/1314805
OBS-URL: https://build.opensuse.org/package/show/network/dnsdiag?expand=0&rev=22
- Update to version 2.8.1
New Features
* Added DNS Cookies support with --cookie option in dnsping.
Improvements & Bug Fixes
* Extended DNS Error messages now always displayed when present.
* Enhanced ECS display format to show source prefix length
([ECS:address/source/scope]).
* Fixed DoH/HTTP3 hostname resolution issues.
* Fixed DoT/DoQ hostname support for SNI and certificate
validation.
* Improved responsiveness to CTRL+C.
* Removed duplicate CLI parameter in usage string.
* EDNS Client Subnet (ECS) Support: Added --ecs option to
dnsping for testing EDNS Client Subnet behavior.
* EDNS Options Display Format: Implemented compact inline format
for EDNS options ([NSID:server-name], [ECS:subnet/scope],
[EDE:code("text")]) to reduce output redundancy.
* DoQ and DoH3 Support in dnstraceroute: Added DNS over QUIC and
DNS over HTTP/3 protocol support for modern encrypted DNS
tracing.
Documentation
* Protocol Support Documentation: Added protocol compatibility
table (UDP, TCP, DoT, DoH, DoQ, DoH3) to clarify tool
capabilities.
* DNS Resolver Reference Updates: Updated public DNS resolver
lists with current operational status and capabilities, also
added more entries (Fixes#129) (#130).
Improvements & Bug Fixes
* CLI Parameter Consistency: Standardized command line parameters
OBS-URL: https://build.opensuse.org/request/show/1308991
OBS-URL: https://build.opensuse.org/package/show/network/dnsdiag?expand=0&rev=20
- Update to version 2.8.0
New Features
* DNS over HTTP/3 (DoH3) Support: Added support for RFC 9114 DNS
over HTTP3 protocol using -3 or --doh3 option in dnsping.
* Improved Error Handling: Enhanced error handling for DoH3
connection failures.
Breaking Changes
* Python 3.9 Support Dropped: Minimum Python version is now 3.10
due to dnspython 2.8.0 requirements.
Improvements
* DoQ and DoH3 Enhancements:
+ Upgraded to dnspython 2.8.0 which provides improved DoQ (DNS
over QUIC) and DoH3 error handling.
* Display Enhancements:
+ Fixed RTT display that was broken in previous release.
+ Improved response time display.
+ Better display of DNS response flags.
+ Fixed EDE (Extended DNS Error) payload display to show empty
string instead of "None".
+ Added quotes around EDE payload strings for better visibility
OBS-URL: https://build.opensuse.org/request/show/1306293
OBS-URL: https://build.opensuse.org/package/show/network/dnsdiag?expand=0&rev=18
- Update to version 2.5.0
* Add RFC5001 NSID support (-n or --nsid).
* Display RFC8914 Extended DNS Errors when available (-E or --ede)
* Add ability to override default RR class (-C or --class).
* Display response TTL if applicable (-L or --ttl).
* Display first answer in RRSET, when available (-a or --answer).
* Add -x to display extra/expert information, implying Flags, EDE
and TTL.
* Display EDNS flags alongside other response flags, when available
* Always display RCODE with responses.
* Add more resolvers to the default list.
* Lots of bug fixes and UX improvements.
* Change default behavior of --edns to disabled by default.
* Always display flags in brackets.
OBS-URL: https://build.opensuse.org/request/show/1181920
OBS-URL: https://build.opensuse.org/package/show/network/dnsdiag?expand=0&rev=14
- Update to version 2.0.2
* Bugfix release
- Update to version 2.0.1
* Add support for DNSSEC
* Add -F to display flags for each response (dnsping)
* Display full response in verbose mode (dnsping)
* Add DoT (DNS over TLS) support (dnsping, dnseval)
* Add DoH (DNS over HTTPS) support (dnsping, dnseval)
* Add TCP support
* Improved JSON output support for dnseval
* Refactor and PEP8 cleanup
* Do not use system resolver when not needed
* Add support for user defined source IP address
* Add user-specified destination port (-p/--port)
* Improve error handling
* Display last response code for each entry
* Rework custom socket and custom TTL support
* Rework time calculation logic to eliminate an extra DNS
request that was just sent for timing (dnstraceroute)
* Update docs (output samples, use cases, etc)
* Use proper terminology (in code) to reduce confusion
OBS-URL: https://build.opensuse.org/request/show/892686
OBS-URL: https://build.opensuse.org/package/show/network/dnsdiag?expand=0&rev=10
- Update to version 2.0.0
* Add support for DNSSEC
* Add -F to display flags for each response (dnsping)
* Display full response in verbose mode (dnsping)
* Add DoT (DNS over TLS) support (dnsping, dnseval)
* Add DoH (DNS over HTTPS) support (dnsping, dnseval)
* Add TCP support
* Refactor and PEP8 cleanup
* Do not use system resolver when not needed
* Add support for user defined source IP address
* Add user-specified destination port (-p/--port)
* Improve error handling
* Display last response code for each entry
* Rework custom socket and custom TTL support
* Rework time calculation logic to eliminate an extra DNS
request that was just sent for timing (dnstraceroute)
* Update docs (output samples, use cases, etc)
* Use proper terminology (in code) to reduce confusion
OBS-URL: https://build.opensuse.org/request/show/882918
OBS-URL: https://build.opensuse.org/package/show/network/dnsdiag?expand=0&rev=8