File bind-ldapdump-use-valid-host.patch of Package bind.20643
--- a/vendor-files/tools/ldapdump
+++ b/vendor-files/tools/ldapdump
@@ -343,11 +343,11 @@
};
print PIPE "server $server\n" or die "can’t write to $nsupdate pipe: $!";
}
- print STDERR "\t\tupdate add $zone. 1234 NS ldapdump_kill_me\n" if( $DEBUG );
+ print STDERR "\t\tupdate add $zone. 1234 NS ldapdump.kill.me\n" if( $DEBUG );
if( $DONSUPDATE ) {
# create dummy NS record
# sadly this one is needed if we want to change the last NS record
- print PIPE "update add $zone. 1234 NS ldapdump_kill_me\n" or die "can’t write to $nsupdate pipe: $!";
+ print PIPE "update add $zone. 1234 NS ldapdump.kill.me\n" or die "can’t write to $nsupdate pipe: $!";
}
foreach my $e ( @data ) {
next if( $e =~ /^[\s;]/ );
@@ -587,6 +587,7 @@
my $ref = $zone_entry->get_value($rec.'record', asref => 1);
next unless $ref;
foreach my $rr ( @$ref ) {
+ $rdn =~ s/\.$zone\.$//;
my $where = ($rdn eq '@')?("$zone."):("$rdn.$zone");
my $command = "update add $where $ttl $rec $rr\n";
print STDERR "\t\t$command" if($DEBUG);
@@ -596,9 +597,10 @@
}
}
}
- print STDERR "\t\tupdate delete $zone. NS ldapdump_kill_me\n" if($DEBUG);
+ print STDERR "\t\tupdate delete $zone. NS ldapdump.kill.me\n" if($DEBUG);
if( $DONSUPDATE ) {
- print PIPE "update delete $zone. NS ldapdump_kill_me\n" or die "can’t write to $nsupdate pipe: $!";
+ print PIPE "update delete $zone. NS ldapdump.kill.me\n" or die "can’t write to $nsupdate pipe: $!";
+ print PIPE "send\n" or die "can’t write to $nsupdate pipe: $!";
print PIPE "\n\n\n" or die "can’t write to $nsupdate pipe: $!";
close(PIPE) or die "can’t close $nsupdate pipe: status=$?";
}
@@ -688,9 +688,11 @@
my %entries;
my $entry = "";
foreach( my $i=0; $i<@data; $i++ ) {
- if( $data[$i] =~ /^(\S+)\s+(.*)/ ) {
+ if( $data[$i] =~ /^(\S+)\s+(.*)/ && $data[$i] !~ /^\$TTL/ ) {
$entry = $1;
$entries{$1} .= "$2\n";
+ } elsif ($data[$i] =~ /^\$TTL/) {
+ $entries{$entry} .= $data[$i];
} else {
$data[$i] =~ /^\s+(.*)/;
$entries{$entry} .= "\t$1\n";