Commit 4872aa74 authored by Simon Kelley's avatar Simon Kelley

Handle SERVFAIL replies when looking for proven-nonexistence of DS.

parent 50f86ce8
...@@ -1347,13 +1347,20 @@ static int do_check_sign(time_t now, struct dns_header *header, size_t plen, cha ...@@ -1347,13 +1347,20 @@ static int do_check_sign(time_t now, struct dns_header *header, size_t plen, cha
{ {
char *name_start; char *name_start;
unsigned char *p; unsigned char *p;
int status = dnssec_validate_ds(now, header, plen, name, keyname, class); int status;
if (status != STAT_INSECURE) /* In this case only, a SERVFAIL reply allows us to continue up the tree, looking for a
{ suitable NSEC reply to DS queries. */
if (status == STAT_NO_DS) if (RCODE(header) != SERVFAIL)
status = STAT_INSECURE; {
return status; status = dnssec_validate_ds(now, header, plen, name, keyname, class);
if (status != STAT_INSECURE)
{
if (status == STAT_NO_DS)
status = STAT_INSECURE;
return status;
}
} }
p = (unsigned char *)(header+1); p = (unsigned char *)(header+1);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment