Net::DNS::Check::Test::ns_compare - Check if the NS RR are the same in all the authoritative nameservers


Net-DNS-Check documentation Contained in the Net-DNS-Check distribution.

Index


Code Index:

NAME

Top

Net::DNS::Check::Test::ns_compare - Check if the NS RR are the same in all the authoritative nameservers

SYNOPSIS

Top

use Net::DNS::Check::Test::ns_compare;

DESCRIPTION

Top

Check if the NS RR are the same in all the authoritative nameservers

METHODS

Top

COPYRIGHT

Top

SEE ALSO

Top

perl(1)


Net-DNS-Check documentation Contained in the Net-DNS-Check distribution.

package Net::DNS::Check::Test::ns_compare;

use strict;
use vars qw(@ISA $VERSION);

@ISA     = qw(Net::DNS::Check::Test);


sub new {
   	my ($class) 	= shift; 

	my ($self) = bless {}, $class;

	if ( @_ ) {
		$self->_process_args(@_);
	}

	$self->test();

	return $self;
}

sub test() {
    my ($self) = shift;

    # return unless ( $self->{config} );

    my $test_status = 1;
    my %compare_hash;
    my $test_detail = {};

    foreach my $nsquery ( @{$self->{nsquery}} ) {
        my @ns_list = sort $nsquery->ns_list();
        my $ns_name = $nsquery->ns_name();
        my $nskey = lc(join('|', @ns_list));

        if ($nskey) {
            $compare_hash{$nskey}++;
        }

        $test_detail->{$ns_name}->{desc} = join(' ', @ns_list);
    }

    if ((scalar keys %compare_hash) > 1) {
        $test_status = 0;
    }

    $self->{test_status} = $test_status;
    $self->{test_detail} = $test_detail;

    return $test_status;
}

1;

__END__