Zonemaster::Engine::TestMethodsV2(3p)

NAME
Zonemaster::Engine::TestMethodsV2 - Version 2 of Methods common to Test Specifications used in Test modules

SYNOPSIS
    my @results = Zonemaster::Engine::TestMethodsV2->get_parent_ns_ips($zone);

METHODS
For details on what these Methods implement, see the Test Specifications document (https://github.com/zonemaster/zonemaster/blob/master/docs/public/specifications/tests/MethodsV2.md).

get_parent_ns_names_and_ips($zone)
    [External]

    This Method obtains the name server names and IP addresses that serve the parent zone, i.e. the zone from which the Child Zone is delegated.

    Takes a Zonemaster::Engine::Zone object.

    Returns an empty arrayref if $zone is the root zone or if an undelegated test is in progress. Else, returns an arrayref of Zonemaster::Engine::Nameserver objects, or "undef" if no parent zone was found.

    The result of this Method is cached for performance reasons. This cache can be invalidated by calling clear_cache() if necessary.

get_parent_ns_ips($zone)
    [External]

    This Method obtains the name servers that serve the parent zone, i.e. the zone from which the Child Zone is delegated. If more than one name server share the same IP address, only one among them is kept.

    Takes a Zonemaster::Engine::Zone object.

    Returns an empty arrayref if $zone is the root zone or if an undelegated test is in progress. Else, returns an arrayref of Zonemaster::Engine::Nameserver objects, or "undef" if no parent zone was found.

_get_oob_ips($zone, $ns_names_ref)
    [Internal]

    This Method will obtain the IP addresses of the Out-Of-Bailiwick name servers for the given zone and a given set of name server names.

    Takes a Zonemaster::Engine::Zone object and an arrayref of Zonemaster::Engine::Nameserver objects.

    Returns an arrayref of Zonemaster::Engine::Nameserver objects for each name server name that was successfully resolved to an IP address, and Zonemaster::Engine::DNSName objects for each name server name that could not be resolved to an IP address.

_get_delegation($zone)
    [Internal]

    This Method will obtain the name server names (from the NS records) and the IP addresses (from Glue records) from the delegation of the given zone from the parent zone. Glue Records are address records for In-Bailiwick name server names, if any.

    Takes a Zonemaster::Engine::Zone object.

    Returns an arrayref of Zonemaster::Engine::Nameserver objects, or "undef" if no parent zone was found.

get_del_ns_names_and_ips($zone)
    [External]

    This Method will obtain the name server names (from the NS records) and the IP addresses (from Glue Records) from the delegation of the given zone from the parent zone. Glue Records, if any, are address records for name server names. Also obtain the IP addresses for the Out-Of-Bailiwick name server names, if any. If the Glue Records include address records for Out-Of-Bailiwick name servers they will be included twice, unless identical.

    Takes a Zonemaster::Engine::Zone object.

    Returns an arrayref of Zonemaster::Engine::Nameserver objects for each name server name that was successfully resolved to an IP address, and Zonemaster::Engine::DNSName objects for each name server name that could not be resolved to an IP address, or "undef" if no parent zone was found.

get_del_ns_names($zone)
    [External]

    This Method will obtain the name server names of the given zone as defined in the delegation from parent zone.

    Takes a Zonemaster::Engine::Zone object.

    Returns an arrayref of strings, or "undef" if no parent zone was found.

get_del_ns_ips($zone)
    [External]

    This Method will obtain the IP addresses (from Glue Records) from the delegation of the given zone from the parent zone. Glue Records are address records for In-Bailiwick name server names, if any. Also obtain the IP addresses for the Out-Of-Bailiwick name server names, if any.

    Takes a Zonemaster::Engine::Zone object.

    Returns an arrayref of strings, or "undef" if no parent zone was found.

get_zone_ns_names($zone)
    [External]

    This Method will obtain the names of the authoritative name servers for the given zone as defined in the NS records in the zone itself.

    Takes a Zonemaster::Engine::Zone object.

    Returns an arrayref of strings, or "undef" if no parent zone was found.

_get_ib_addr_in_zone($zone)
    [Internal]

    This Method will obtain the address records matching the In-Bailiwick name server names from the given zone.

    Takes a Zonemaster::Engine::Zone object.

    Returns an arrayref of Zonemaster::Engine::Nameserver objects, or "undef" if no parent zone was found.

get_zone_ns_names_and_ips($zone)
    [External]

    This Method will obtain the name server names (extracted from the NS records) from the apex of the given zone. For the In-Bailiwick name server names obtain the IP addresses from the given zone. For the Out-Of-Bailiwick name server names obtain the IP addresses from recursive lookup.

    Takes a Zonemaster::Engine::Zone object.

    Returns an arrayref of Zonemaster::Engine::Nameserver objects for each name server name that was successfully resolved to an IP address, and Zonemaster::Engine::DNSName objects for each name server name that could not be resolved to an IP address, or "undef" if no parent zone was found.

get_zone_ns_ips($zone)
    [External]

    This Method will obtain the IP addresses of the name servers, as extracted from the NS records of apex of the given zone.

    Takes a Zonemaster::Engine::Zone object.

    Returns an arrayref of strings, or "undef" if no parent zone was found.

clear_cache()
    Clears previously cached results of the get_parent_ns_names_and_ips() method.