Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[dns] Disambiguate "no nameserver" and "no DNS record" errors
Signed-off-by: Michael Brown <mcb30@ipxe.org>
  • Loading branch information
mcb30 committed Dec 1, 2010
1 parent b8f7211 commit 34dab10
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/net/udp/dns.c
Expand Up @@ -46,6 +46,14 @@ FILE_LICENCE ( GPL2_OR_LATER );

FEATURE ( FEATURE_PROTOCOL, "DNS", DHCP_EB_FEATURE_DNS, 1 );

/* Disambiguate the various error causes */
#define ENXIO_NO_RECORD __einfo_error ( EINFO_ENXIO_NO_RECORD )
#define EINFO_ENXIO_NO_RECORD \
__einfo_uniqify ( EINFO_ENXIO, 0x01, "DNS name does not exist" )
#define ENXIO_NO_NAMESERVER __einfo_error ( EINFO_ENXIO_NO_NAMESERVER )
#define EINFO_ENXIO_NO_NAMESERVER \
__einfo_uniqify ( EINFO_ENXIO, 0x02, "No DNS servers available" )

/** The DNS server */
static struct sockaddr_tcpip nameserver = {
.st_port = htons ( DNS_PORT ),
Expand Down Expand Up @@ -438,7 +446,7 @@ static int dns_xfer_deliver ( struct dns_request *dns,
goto done;
} else {
DBGC ( dns, "DNS %p found no CNAME record\n", dns );
dns_done ( dns, -ENXIO );
dns_done ( dns, -ENXIO_NO_RECORD );
rc = 0;
goto done;
}
Expand Down Expand Up @@ -507,7 +515,7 @@ static int dns_resolv ( struct interface *resolv,
if ( ! nameserver.st_family ) {
DBG ( "DNS not attempting to resolve \"%s\": "
"no DNS servers\n", name );
rc = -ENXIO;
rc = -ENXIO_NO_NAMESERVER;
goto err_no_nameserver;
}

Expand Down

0 comments on commit 34dab10

Please sign in to comment.