From 47ed438e31e5fadb15c374f8f9f212c57e70553f Mon Sep 17 00:00:00 2001 From: Jorj Bauer Date: Mon, 22 Feb 2016 16:31:41 -0500 Subject: [PATCH] needed to test if the master changed, too --- bin/sync-slave | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/bin/sync-slave b/bin/sync-slave index b52c8c8..bf2f6c6 100755 --- a/bin/sync-slave +++ b/bin/sync-slave @@ -30,8 +30,10 @@ sub parse_slavefile { open(my $fh, $f) || die "Can't open $f: $!"; while (<$fh>) { - if (/^zone\s+\"([^\"]+)\"\s+\{/) { - push ( @ret, { zone => $1 } ); + if (/^zone\s+\"([^\"]+)\"\s+\{.+masters\s?\{\s?([^;]+);/) { + push ( @ret, { zone => $1, + master => $2 + } ); } } return @ret; @@ -40,6 +42,9 @@ sub parse_slavefile { sub do_rewrite { my (@vh) = @_; my ($fh, $path) = tempfile(); + + print "Differences found; rewriting slave file.\n"; + foreach my $i (sort {$a->{zone} cmp $b->{zone}} @vh) { print $fh "zone \"$i->{zone}\" { type slave; file \"/var/cache/bind/db.$i->{zone}\"; masters { $i->{master}; }; };\n"; } @@ -55,7 +60,9 @@ sub contains_zone { foreach my $i (@zl) { return 1 - if ($i->{zone} eq $zone); + if ($i->{zone} eq $zone->{zone} && + $i->{master} eq $zone->{master} + ); } return 0; }