chiark / gitweb /
Line breaking.
[chiark-utils.git] / scripts / named-conf
index 359c61c08bb6ac14ea298bd91c4a7e3a9eeb2a1d..694ab940adff6fdf84f0fa975127a2dd8d2beec5 100755 (executable)
@@ -117,13 +117,17 @@ sub read_config ($) {
     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;
        }
-       $where= "$if:$.";
        s/^\s+//; chomp; s/\s+$//;
+       if (m/\\$/) { $before.= $_; next; }
+       $_= $before.$_;
+       $before= '';
+       $where= "$if:$.";
        next if m/^\#/;
        last if m/^end$/;
        next unless m/\S/;
@@ -269,6 +273,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($delg_to_us);
 use vars qw(@to_check); # ($addr,$whyask,$is_auth,$glueless_ok, ...)
 use vars qw(@to_check_soa); # ($addr,$whyask, ...)
 
@@ -283,6 +288,7 @@ sub zone_reset() {
     %delgs= %auths= %glue= %soas=
        %warned_glueless= %warned_mynameaddr=
            %addr_is_ok= ();
+    $delg_to_us= 0;
     @to_check= @to_check_soa= ();
 }
 
@@ -385,6 +391,7 @@ sub zone_server_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 ($$$) {
@@ -449,6 +456,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 ($%) {