"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "nsec3.c" between
nsd-4.3.5.tar.gz and nsd-4.3.6.tar.gz

About: NSD is an authoritative only, high performance, simple name server daemon.

nsec3.c  (nsd-4.3.5):nsec3.c  (nsd-4.3.6)
skipping to change at line 978 skipping to change at line 978
if(walk->nsec3->nsec3_ds_parent_is_exact) if(walk->nsec3->nsec3_ds_parent_is_exact)
break; break;
} }
walk = domain_next(walk); walk = domain_next(walk);
} }
/* the hashed name of the query corresponds to an existing name. */ /* the hashed name of the query corresponds to an existing name. */
VERBOSITY(3, (LOG_ERR, "nsec3 hash collision for name=%s hash=%s reverse=%s", VERBOSITY(3, (LOG_ERR, "nsec3 hash collision for name=%s hash=%s reverse=%s",
dname_to_string(to_prove, NULL), hashbuf, reversebuf)); dname_to_string(to_prove, NULL), hashbuf, reversebuf));
RCODE_SET(query->packet, RCODE_SERVFAIL); RCODE_SET(query->packet, RCODE_SERVFAIL);
/* RFC 8914 - Extended DNS Errors
* 4.21. Extended DNS Error Code 0 - Other */
ASSIGN_EDE_CODE_AND_STRING_LITERAL(query->edns.ede,
EDE_OTHER, "NSEC3 hash collision");
return; return;
} }
else else
{ {
/* cover proves the qname does not exist */ /* cover proves the qname does not exist */
nsec3_add_rrset(query, answer, AUTHORITY_SECTION, cover); nsec3_add_rrset(query, answer, AUTHORITY_SECTION, cover);
} }
} }
static void static void
skipping to change at line 1188 skipping to change at line 1192
if(closest_encloser->nsec3) if(closest_encloser->nsec3)
nsec3_add_rrset(query, answer, AUTHORITY_SECTION, closest _encloser->nsec3->nsec3_cover); nsec3_add_rrset(query, answer, AUTHORITY_SECTION, closest _encloser->nsec3->nsec3_cover);
/* disprove a wildcard */ /* disprove a wildcard */
if(query->zone->apex->nsec3) if(query->zone->apex->nsec3)
nsec3_add_rrset(query, answer, AUTHORITY_SECTION, nsec3_add_rrset(query, answer, AUTHORITY_SECTION,
query->zone->apex->nsec3->nsec3_wcard_child_cover ); query->zone->apex->nsec3->nsec3_wcard_child_cover );
if (domain_wildcard_child(query->zone->apex)) { if (domain_wildcard_child(query->zone->apex)) {
/* wildcard exists below the domain */ /* wildcard exists below the domain */
/* wildcard and nsec3 domain clash. server failure. */ /* wildcard and nsec3 domain clash. server failure. */
RCODE_SET(query->packet, RCODE_SERVFAIL); RCODE_SET(query->packet, RCODE_SERVFAIL);
/* RFC 8914 - Extended DNS Errors
* 4.21. Extended DNS Error Code 0 - Other */
ASSIGN_EDE_CODE_AND_STRING_LITERAL(query->edns.ede,
EDE_OTHER, "Wildcard and NSEC3 domain clash");
} }
return; return;
} }
else if(*match && (*match)->is_existing && else if(*match && (*match)->is_existing &&
#if 0 #if 0
query->qtype != TYPE_NSEC3 && query->qtype != TYPE_NSEC3 &&
#endif #endif
(domain_has_only_NSEC3(*match, query->zone) || (domain_has_only_NSEC3(*match, query->zone) ||
!domain_find_any_rrset(*match, query->zone))) !domain_find_any_rrset(*match, query->zone)))
{ {
 End of changes. 2 change blocks. 
0 lines changed or deleted 8 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)