dns_resolver::local

Function resolve_local

Source
pub fn resolve_local<CT>(
    context: &mut Context<'_, CT>,
    question: &Question,
) -> Result<LocalResolutionResult, ResolutionError>
Expand description

Local DNS resolution.

This acts like a pseudo-nameserver, returning a LocalResolutionResult which is either consumed by another resolver, or converted directly into a ResolvedRecord to return to the client.

This corresponds to steps 2, 3, and 4 of the standard nameserver algorithm:

  • check if there is a zone which matches the QNAME

  • search through it for a match (either an answer, a CNAME, or a delegation)

  • search through the cache if we didn’t get an authoritative match

This function gives up if the CNAMEs form a cycle.

See section 4.3.2 of RFC 1034.

§Errors

See ResolutionError.