What's Changed
New Features
- Added --nsid support to dnstraceroute for tracing paths to anycast instances (#153, #152)
- Added DNS COOKIE support to dnsping (--cookie)
- Added DoQ (DNS over QUIC) and DoH3 (DNS over HTTP/3) protocol support to dnseval (#139, #137)
- Added cache warmup behavior to dnseval for fair resolver comparisons (#138, #40)
- Added EDNS flags display in dnseval output
- Added Python 3.14 support
Improvements
- Refactored codebase with PEP 8 conventions and comprehensive type hints (#151)
- Improved CLI error handling and parameter validation across all tools
- Enhanced hostname validation to allow RFC-compliant hostnames starting with underscore
- Improved IPv6 address display with bracket wrapping for readability
Bug Fixes
- Fixed IPv4/IPv6 address family selection to default to AF_UNSPEC for automatic detection
- Fixed DoH3 feature detection to properly check HTTPVersion.H3
- Fixed hostname resolution on Windows where getaddrinfo() behaves differently
- Fixed IPv6 hostname resolution to avoid IPv4-mapped IPv6 addresses
- Fixed DNS COOKIE display in normal and verbose modes
- Fixed JSON output type consistency for float values
- Fixed premature TCP connection termination handling (#140)
Testing & CI/CD
- Added comprehensive GitHub Actions integration test workflow for Ubuntu, macOS, and Windows
- Added test markers for network, privileged, and IPv6 tests
- Integrated git-changelog for automated changelog generation
Documentation
- Cleaned up DNS resolver lists (removed dns0.eu, updated UncensoredDNS status)
- Updated DNS resolver lists with DoT/DoH hostnames and new providers