Commit 2e4187af authored by Michał Kępień's avatar Michał Kępień

Add a comment explaining a mirror zone glitch

Explain why in a certain edge case mirror zone data may not be used for
resolution purposes despite being available.
parent b46b2438
Pipeline #9727 canceled with stages
in 12 seconds
......@@ -179,6 +179,16 @@ dns_zt_find(dns_zt_t *zt, const dns_name_t *name, unsigned int options,
* a mirror zone which is expired or not yet loaded, treat it
* as non-existent. This will trigger a fallback to recursion
* instead of returning a SERVFAIL.
*
* Note that currently only the deepest match in the zone table
* is checked. Consider a server configured with two mirror
* zones: "bar" and its child, "foo.bar". If zone data is
* available for "bar" but not for "foo.bar", a query with
* QNAME equal to or below "foo.bar" will cause ISC_R_NOTFOUND
* to be returned, not DNS_R_PARTIALMATCH, despite zone data
* being available for "bar". This is considered to be an edge
* case, handling which more appropriately is possible, but
* arguably not worth the added complexity.
*/
if ((options & DNS_ZTFIND_MIRROR) != 0 &&
dns_zone_gettype(dummy) == dns_zone_mirror &&
......
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