From 076dd3677f121d435f7c442219a76088ef1f4c4f Mon Sep 17 00:00:00 2001 From: Razvan Dimescu Date: Sat, 28 Mar 2026 22:45:23 +0200 Subject: [PATCH] feat: show DNSSEC and SRTT status in dashboard + API Add dnssec and srtt boolean fields to /stats API response. Display on/off indicators in the dashboard footer. Co-Authored-By: Claude Opus 4.6 --- site/dashboard.html | 6 ++++++ src/api.rs | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/site/dashboard.html b/site/dashboard.html index ca746c3..7f83699 100644 --- a/site/dashboard.html +++ b/site/dashboard.html @@ -879,6 +879,10 @@ async function refresh() { document.getElementById('footerUpstream').textContent = stats.upstream || ''; document.getElementById('footerConfig').textContent = stats.config_path || ''; document.getElementById('footerData').textContent = stats.data_dir || ''; + document.getElementById('footerDnssec').textContent = stats.dnssec ? 'on' : 'off'; + document.getElementById('footerDnssec').style.color = stats.dnssec ? 'var(--emerald)' : 'var(--text-dim)'; + document.getElementById('footerSrtt').textContent = stats.srtt ? 'on' : 'off'; + document.getElementById('footerSrtt').style.color = stats.srtt ? 'var(--emerald)' : 'var(--text-dim)'; // LAN status indicator const lanEl = document.getElementById('lanToggle'); @@ -1229,6 +1233,8 @@ setInterval(refresh, 2000); Config: · Data: · Upstream: + · DNSSEC: + · SRTT: · Logs: macOS: /usr/local/var/log/numa.log · Linux: journalctl -u numa -f · GitHub diff --git a/src/api.rs b/src/api.rs index f0ad18b..9826a3a 100644 --- a/src/api.rs +++ b/src/api.rs @@ -162,6 +162,8 @@ struct StatsResponse { upstream: String, config_path: String, data_dir: String, + dnssec: bool, + srtt: bool, queries: QueriesStats, cache: CacheStats, overrides: OverrideStats, @@ -491,6 +493,8 @@ async fn stats(State(ctx): State>) -> Json { upstream, config_path: ctx.config_path.clone(), data_dir: ctx.data_dir.to_string_lossy().to_string(), + dnssec: ctx.dnssec_enabled, + srtt: ctx.srtt.read().unwrap().is_enabled(), queries: QueriesStats { total: snap.total, forwarded: snap.forwarded,