X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=blobdiff_plain;f=scripts%2Fnamed-conf;h=eefadcd959bf36a17a708e94649a90783139e96e;hb=b01550facde23e38f0a9ecfb5a6d700d253d9527;hp=0f4861e2e594933be1a05f8682ec3399a24164c0;hpb=9a16c546a87fb36e09cb1f1822739c11012fcd6c;p=chiark-utils.git diff --git a/scripts/named-conf b/scripts/named-conf index 0f4861e..eefadcd 100755 --- a/scripts/named-conf +++ b/scripts/named-conf @@ -4,10 +4,12 @@ use strict; use IO::File; use Data::Dumper; -use vars qw($mode +use vars qw($quis $mode $etcfile $where $debug $needglue $localonly $verbosity); +$quis= $0; $quis =~ s,.*/,,; + $mode= ''; $etcfile= "/etc/bind/chiark-conf-gen.zones"; $where= ''; @@ -97,12 +99,11 @@ debug_dump('@zone_cfg_list %zone_cfg'); process_zones($mode ? @zone_cfg_list : @ARGV); debug_dump('%output_contents'); -print STDERR "$0: $warnings warnings\n" if $warnings; exit 0; #-------------------- configuration reading -sub cfg_fail ($) { die "$0: $where:\n $_[0]\n"; } +sub cfg_fail ($) { die "$quis: $where:\n $_[0]\n"; } sub read_config ($) { my ($if) = @_; @@ -231,6 +232,8 @@ sub process_zones (@) { } zone_output() if $install; } + print STDERR "$quis: $warnings warnings\n" or die $! + if $warnings; } sub zone_warning ($) { @@ -481,17 +484,17 @@ sub lookup ($$$) { debug_trace("lookup ==> (->$okrcodes) $domain $type"); $h= new IO::Handle; - defined($c= open $h, "-|") or die "$0: fork adnshost:\n $!\n"; + defined($c= open $h, "-|") or die "$quis: fork adnshost:\n $!\n"; if (!$c) { exec 'adnshost','-Fi','+Do','+Dt','+Dc','-Cf',"-t$type", '-',"$domain."; - die "$0: exec adnshost:\n $!\n"; + die "$quis: exec adnshost:\n $!\n"; } @result= $h->getlines(); - $h->error and die "$0: read from adnshost:\n $!\n"; + $h->error and die "$quis: read from adnshost:\n $!\n"; chomp @result; $!=0; $h->close; - die "$0: lookup -t$type $domain $okrcodes failed $? $!\n" + die "$quis: lookup -t$type $domain $okrcodes failed $? $!\n" if $! or $?>6 or index($okrcodes,$?)<0; debug_trace("lookup <== $? @result"); return ($?,@result); @@ -507,18 +510,18 @@ sub dig (&$$$) { debug_trace("dig ==> \@$qaddr $qowner $qtype"); $h= new IO::Handle; - defined($c= open $h, "-|") or die "$0: fork dig:\n $!\n"; + defined($c= open $h, "-|") or die "$quis: fork dig:\n $!\n"; if (!$c) { open STDERR, ">&STDOUT" or die $!; exec ('dig', '+nodef','+nosea','+nodebug','+norecurse', "\@$qaddr",'-t',$qtype,$qowner); - die "$0: exec dig:\n $!\n"; + die "$quis: exec dig:\n $!\n"; } $inmid=''; for (;;) { if (!defined($_= $h->getline())) { - $h->error() and die "$0: read from dig:\n $!\n"; + $h->error() and die "$quis: read from dig:\n $!\n"; last; } chomp; @@ -577,7 +580,7 @@ __DATA__ sub lookup1 ($$) { my ($type,$domain) = @_; my (@result)= lookup($type,$domain); - @result==1 or die "$0: lookup -t$type $domain gave more than one RR\n"; + @result==1 or die "$quis: lookup -t$type $domain gave more than one RR\n"; return $result[0]; } @@ -626,7 +629,7 @@ sub check () { for $super_ns (@super_ns) { @deleg_ns= (); open DIG, "dig @$super_ns. -t ns +norecurse $zone." - or die "$0: fork for dig:\n $!\n"; + or die "$quis: fork for dig:\n $!\n"; while () { @@ -702,7 +705,7 @@ done endfile -chdir "$base/primary" or die "$0: chdir $base/primary:\n $!"; +chdir "$base/primary" or die "$quis: chdir $base/primary:\n $!"; beginfile('primary.zones'); for $f (<*_db>) { @@ -721,19 +724,19 @@ endfile sub beginfile ($) { $currentfile= $_[0]; $currentfile_opened= $install ? "$conf/$currentfile.new" : "/dev/null"; - open CFF, "> $toopen" or die "$0: begin $currentfile_opened:\n $!\n"; + open CFF, "> $toopen" or die "$quis: begin $currentfile_opened:\n $!\n"; } endfile () { - close CFF or die "$0: close $currentfile_opened:\n $!\n"; + close CFF or die "$quis: close $currentfile_opened:\n $!\n"; push @files, $currentfile; } sub installfiles () { return unless $install; - chdir $conf or die "$0: chdir $conf:\n $!\n"; + chdir $conf or die "$quis: chdir $conf:\n $!\n"; for $f (@files) { - rename "$f.new", $f or die "$0: install new $f:\n $!\n"; + rename "$f.new", $f or die "$quis: install new $f:\n $!\n"; } }