Provided by: libzonemaster-perl_4.7.3-1_all bug

NAME

       Zonemaster::Engine::Zone - Object representing a DNS zone

SYNOPSIS

           my $zone = Zonemaster::Engine::Zone->new({ name => 'nic.se' });
           my $packet = $zone->parent->query_one($zone->name, 'NS');

DESCRIPTION

       Objects of this class represent zones in DNS. As far as possible, test implementations
       should access information about zones via these objects. Doing so will provide lazy-
       loading of the information, well-defined methods in which the information is fetched,
       logging and the ability to do things like testing zones that have not yet been delegated.

ATTRIBUTES

       name
           A Zonemaster::Engine::DNSName object representing the name of the zone.

       parent
           A Zonemaster::Engine::Zone object for this domain's parent domain. As a special case,
           the root zone is considered to be its own parent (so look for that if you recurse up
           the tree).

       ns_names
           A reference to an array of Zonemaster::Engine::DNSName objects, holding the names of
           the nameservers for the domain, as returned by the first responding nameserver in the
           glue list.

       ns  A reference to an array of Zonemaster::Engine::Nameserver objects for the domain,
           built by taking the list returned from ns_names() and looking up addresses for the
           names. One element will be added to this list for each unique name/IP pair. Names for
           which no addresses could be found will not be in this list. The list is lazy-loading,
           so take care to only look at as many entries as you really need. There are zones with
           more than 20 nameserver, and looking up the addresses of them all can take som
           considerable time.

       glue_names
           A reference to a an array of Zonemaster::Engine::DNSName objects, holding the names of
           this zones nameservers as listed at the first responding nameserver of the parent
           zone.

       glue
           A reference to an array of Zonemaster::Engine::Nameserver objects for the domain,
           built by taking the list returned from glue_names() and looking up addresses for the
           names. One element will be added to this list for each unique name/IP pair. Names for
           which no addresses could be found will not be in this list. In this case, the list is
           lazy-loading, so take care to only look at as many entries as you really need. In case
           of undelegated tests and fake delegation the IP associated with name servers for the
           tested zone will be the ones set by users (saved in
           %Zonemaster::Engine::Recursor::fake_addresses_cache), instead of the ones found
           recursively.

       glue_addresses
           A list of Zonemaster::LDNS::RR::A and Zonemaster::LDNS::RR::AAAA records returned in
           the Additional section of an NS query to the first listed nameserver for the parent
           domain.

METHODS

       query_one($name[, $type[, $flags]])
           Sends (or retrieves from cache) a query for the given name, type and flags sent to the
           first nameserver in the zone's ns list. If there is a response, it will be returned in
           a Zonemaster::Engine::Packet object. If the type arguments is not given, it defaults
           to 'A'. If the flags are not given, they default to "class" IN and "dnssec", "usevc"
           and "recurse" according to configuration (which is by default off on all three).

       query_persistent($name[, $type[, $flags]])
           Identical to query_one, except that instead of returning the packet from the first
           server that returns one, it returns the first packet that actually contains a resource
           record matching the requested name and type.

       query_auth($name[, $type[, $flags]])
           Identical to query_one, except that instead of returning the packet from the first
           server that returns one, it returns the first packet that has the AA flag set.

       query_all($name, $type, $flags)
           Sends (or retrieves from cache) queries to all the nameservers listed in the zone's ns
           list, and returns a reference to an array with the responses. The responses can be
           either Zonemaster::Engine::Packet objects or "undef" values. The arguments are the
           same as for query_one.

       is_in_zone($name)
           Returns true if the given name is in the zone, false if not. If it could not be
           determined with a sufficient degree of certainty if the name is in the zone or not,
           "undef" is returned.