lib/Nagios/Check/DNS/delegation.pm
changeset 22 8fdd1e3a6bc3
parent 20 112e7c316db9
child 23 1eed74960c1c
equal deleted inserted replaced
21:a4e11829f96e 22:8fdd1e3a6bc3
   125 sub ns_ok {
   125 sub ns_ok {
   126     my ($domain, $reference, $override) = @_;
   126     my ($domain, $reference, $override) = @_;
   127 
   127 
   128     my (@errs, @ns);
   128     my (@errs, @ns);
   129     my @our = eval { sort +ns($domain, nameservers => [$reference], aa => 1, override => $override) };
   129     my @our = eval { sort +ns($domain, nameservers => [$reference], aa => 1, override => $override) };
   130     push @errs, $@ if $@;
   130     if (chomp $@) {
       
   131         push @errs, $@;
       
   132         push @our, $@;
       
   133     }
   131 
   134 
   132     my @their = eval { sort +ns($domain) };
   135     my @their = eval { sort +ns($domain) };
   133     push @errs, $@ if $@;
   136     if (chomp $@) {
   134 
   137         push @errs, $@;
   135     if (@errs) {
   138         push @their, $@;
   136         chomp @errs;
   139     }
   137         die join(', ' => @errs) . "\n";
   140 
   138     }
   141     if (@errs or "@our" ne "@their") {
       
   142         local $" = ', ';
       
   143         die sprintf "NS differ (%s: @our) vs (public: @their)\n",
       
   144             $override->{$domain} ? 'override' : 'our';
   139     
   145     
   140     if ("@our" ne "@their") {
       
   141         local $" = ', ';
       
   142         die sprintf "NS differ (%s @our) vs (public @their)\n",
       
   143             $override->{$domain} ? 'override' : 'our';
       
   144     }
   146     }
   145 
   147 
   146     @ns = uniq sort @our, @their;
   148     @ns = uniq sort @our, @their;
   147     ### @ns
   149     ### @ns
   148     return @ns;
   150     return @ns;