From de0d413c0c6641580520ff5bee4bbbbeff30db8f Mon Sep 17 00:00:00 2001 From: d00f <8052722+DrDoof@users.noreply.github.com> Date: Sat, 10 Oct 2026 17:54:55 +0200 Subject: [PATCH] dns: show the last lookup with the servers The answer to a lookup arrives after the command has returned, so the console of the web interface never shows it. Plain "dns" now prints the name and the address, or whether it is still pending or failed. --- dns.c | 12 ++++++++++++ doc/dns.md | 6 +++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/dns.c b/dns.c index 2dc7e575..68776c72 100644 --- a/dns.c +++ b/dns.c @@ -200,6 +200,18 @@ void dns_show(void) __banked print_string(", from DHCP "); print_ip(dhcp_state.dns); write_char('\n'); + if (!dns_state.name[0]) + return; + print_string("Last lookup "); + print_string_x(dns_state.name); + print_string(": "); + if (dns_state.status == DNS_DONE) + print_ip(dns_state.addr); + else if (dns_state.status == DNS_PENDING) + print_string("pending"); + else + print_string("failed"); + write_char('\n'); } diff --git a/doc/dns.md b/doc/dns.md index 3763a404..8a86418d 100644 --- a/doc/dns.md +++ b/doc/dns.md @@ -6,9 +6,13 @@ for anything else that is given a name instead of an address. ``` dns server [] # one or two servers, 0.0.0.0 removes them dns lookup # resolve a name and print the address -dns # show the servers +dns # show the servers and the last lookup ``` +The answer to a lookup arrives after the command has returned, so it is +printed on the serial console and in the syslog. In the console of the web +interface, run `dns` afterwards to see it. + Without a configured server the resolver uses the one handed out by DHCP. Only address records are looked up; a query goes to the servers in turn, every two seconds, and gives up after six tries. A name that already is a