sub read_config ($) {
my ($if) = @_;
- my ($fh,$z,@self, $mod,$dir,$prefix,$suffix,$lprefix,$lsuffix);
+ my ($fh,$z,@self,$before, $mod,$dir,$prefix,$suffix,$lprefix,$lsuffix);
local ($_);
$fh= new IO::File $if,'r' or cfg_fail("open $if:\n $!");
+ $before= '';
for (;;) {
if (!defined($_= <$fh>)) {
cfg_fail("read config file $if:\n $!") if $fh->error();
last;
}
+ chomp; s/\s+$//;
+ if (m/\\$/) { $before.= $_; next; }
+ $_= $before.$_;
+ $before= '';
+ s/^\s+//;
$where= "$if:$.";
- s/^\s+//; chomp; s/\s+$//;
next if m/^\#/;
last if m/^end$/;
next unless m/\S/;
}
sub zone_warnmore ($) {
- print STDERR " $_[0]\n" or die $!;
+ print STDERR "$zone: $_[0]\n" or die $!;
}
use vars qw(%delgs); # $delgs{$nameserver_list} = [ $whosaidandwhy ]
use vars qw(%glue); # $glue{$name}{$addr_list} = [ $whosaidandwhy ]
use vars qw(%soas); # $soa{"$origin $serial"} = [ $whosaidandwhy ]
use vars qw(%addr_is_ok %warned_glueless %warned_mynameaddr);
+use vars qw($delg_to_us);
use vars qw(@to_check); # ($addr,$whyask,$is_auth,$glueless_ok, ...)
use vars qw(@to_check_soa); # ($addr,$whyask, ...)
%delgs= %auths= %glue= %soas=
%warned_glueless= %warned_mynameaddr=
%addr_is_ok= ();
+ $delg_to_us= 0;
@to_check= @to_check_soa= ();
}
" us [$addr] with wrong name $name, (eg) $ww")
unless $warned_mynameaddr{$name}{$addr}++;
}
+ $delg_to_us=1 if $name_is_self;
}
sub zone_check_soa ($$$) {
}
}
}
+ if ($cfg->{'s'} =~ m/s/ && !$delg_to_us) {
+ zone_warnmore("we are supposedly published secondary,".
+ " but not listed as a nameserver");
+ }
}
sub zone_consistency_set ($%) {
$h->error and die "$quis: read from adnshost:\n $!\n";
chomp @result;
$!=0; $h->close;
- die "$quis: lookup -t$type $domain $okrcodes failed $? $!\n"
+ die "$quis: lookup -t$type $domain $okrcodes failed $? $! @result\n"
if $! or $?>6 or index($okrcodes,$?)<0;
debug_trace("lookup <== $? @result");
return ($?,@result);