github farrokhi/dnsdiag v2.9.2
dnsdiag 2.9.2

9 hours ago

What's Changed

This release focuses on stability improvements, fixing several issues reported by the community and discovered through continuous testing.

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. This was only triggered in GitHub CI tests and apparently was an edge case that only happened when a machine was too busy.

Documentation

  • Updated README with JSONL output examples and jq usage patterns

Full Changelog: v2.9.1...v2.9.2

Installation

# Using pip
pip install --upgrade dnsdiag

# Using uvx
uvx --from dnsdiag dnsping google.com

# Using pipx
pipx install dnsdiag

Docker:

docker pull farrokhi/dnsdiag:2.9.2

Binary packages: Available for Linux (x86_64, aarch64), macOS (Intel, Apple Silicon), FreeBSD, and Windows in the release assets below.

  This follows the same structure and tone as previous releases while accurately describing the changes in v2.9.2.

Don't miss a new dnsdiag release

NewReleases is sending notifications on new releases.