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