chiark
/
gitweb
/
~ian
/
chiark-utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Bugfixes etc.
[chiark-utils.git]
/
scripts
/
named-conf
diff --git
a/scripts/named-conf
b/scripts/named-conf
index 359c61c08bb6ac14ea298bd91c4a7e3a9eeb2a1d..24f99068e4ee1ee95835b2a660714955f52876e0 100755
(executable)
--- a/
scripts/named-conf
+++ b/
scripts/named-conf
@@
-113,17
+113,22
@@
sub cfg_fail ($) { die "$quis: $where:\n $_[0]\n"; }
sub read_config ($) {
my ($if) = @_;
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 $!");
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;
}
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:$.";
$where= "$if:$.";
- s/^\s+//; chomp; s/\s+$//;
next if m/^\#/;
last if m/^end$/;
next unless m/\S/;
next if m/^\#/;
last if m/^end$/;
next unless m/\S/;
@@
-261,7
+266,7
@@
sub zone_warning ($) {
}
sub zone_warnmore ($) {
}
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(%delgs); # $delgs{$nameserver_list} = [ $whosaidandwhy ]
@@
-269,6
+274,7
@@
use vars qw(%auths); # $auths{$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(%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, ...)
use vars qw(@to_check); # ($addr,$whyask,$is_auth,$glueless_ok, ...)
use vars qw(@to_check_soa); # ($addr,$whyask, ...)
@@
-283,6
+289,7
@@
sub zone_reset() {
%delgs= %auths= %glue= %soas=
%warned_glueless= %warned_mynameaddr=
%addr_is_ok= ();
%delgs= %auths= %glue= %soas=
%warned_glueless= %warned_mynameaddr=
%addr_is_ok= ();
+ $delg_to_us= 0;
@to_check= @to_check_soa= ();
}
@to_check= @to_check_soa= ();
}
@@
-385,6
+392,7
@@
sub zone_server_addr ($$$$$) {
" us [$addr] with wrong name $name, (eg) $ww")
unless $warned_mynameaddr{$name}{$addr}++;
}
" 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 ($$$) {
}
sub zone_check_soa ($$$) {
@@
-449,6
+457,10
@@
sub zone_servers_ok () {
}
}
}
}
}
}
+ 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 ($%) {
}
sub zone_consistency_set ($%) {
@@
-535,7
+547,7
@@
sub lookup ($$$) {
$h->error and die "$quis: read from adnshost:\n $!\n";
chomp @result;
$!=0; $h->close;
$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);
if $! or $?>6 or index($okrcodes,$?)<0;
debug_trace("lookup <== $? @result");
return ($?,@result);