DNS-nsdiff
view release on metacpan or search on metacpan
# For each owner name prepare deletion commands followed by addition
# commands. This ensures TTL adjustments and CNAME/other replacements
# are handled correctly. Ensure each owner's changes are not split below.
my (@batch,@script);
sub emit {
if ($opt{0}) { push @script, splice @batch }
else { push @script, join '', splice @batch }
}
sub update {
my ($addel,$owner,$rrs) = @_;
push @batch, map "update $addel $owner $_", sort @$rrs;
}
for my $owner (keys %del) {
update 'delete', $owner, delete $del{$owner};
update 'add', $owner, delete $add{$owner} if exists $add{$owner};
emit;
}
for my $owner (keys %add) {
update 'add', $owner, delete $add{$owner};
( run in 0.231 second using v1.01-cache-2.11-cpan-4d4bc49f3ae )