File dnswalk-fix-warnings-about-soa-contact-name.patch of Package dnswalk
Description: Fix warnings about soa contact name
Author: Ruud van Melick <ruud@vanmelick.com>
Origin: other, https://github.com/vanmelick/dnswalk/commit/8de083b573125cb333083f789cc5773f34c8ef8d https://github.com/vanmelick/dnswalk/commit/445d43dcf5f1253057d5d185f0981edd2a8bfce0
Bug: https://github.com/davebarr/dnswalk/pull/1
Last-Update: 2015-07-28
When the SOA contact name is set to 'user.example.com.' then $rr-rname in
the current version of Net::DNS::RR::SOA returns 'user@example.com'
instead of 'user.example.com.' which causes a warning 'WARN: SOA contact
name (user@example.com) is invalid', even though it was set correctly.
See: https://rt.cpan.org/Public/Bug/Display.html?id=95290
--- a/dnswalk
+++ b/dnswalk
#@@ -180,11 +180,13 @@ sub check_zone {
# }
# if ($rr->type eq "SOA") {
# print STDERR 's' if $opt_d;
#- print "SOA=". $rr->mname ." contact=". $rr->rname ."\n";
#+ my @soa = split(/\s+/,$rr->rdstring);
#+ my $rname = $soa[2];
#+ print "SOA=". $rr->mname ." contact=". $rname ."\n";
# # basic address check. No "@", and user.dom.ain (two or more dots)
#- if (($rr->rname =~ /@/)||!($rr->rname =~ /\..*\./)) {
#+ if (($rname =~ /@/)||!($rname =~ /[^.]+(\.[^.]+){2,}/)) {
# &printerr("WARN", "SOA contact name (".
#- $rr->rname .") is invalid\n");
#+ $rname .") is invalid\n");
# }
# } elsif ($rr->type eq "PTR") {
# print STDERR 'p' if $opt_d;
@@ -184,11 +184,12 @@
}
if ($rr->type eq "SOA") {
print STDERR 's' if $opt_d;
- print "SOA=" . $rr->mname . " contact=" . $rr->rname . "\n";
+ my @soa = split(/\s+/,$rr->rdstring);
+ my $rname = $soa[1];
+ print "SOA=" . $rr->mname . " contact=" . $rname . "\n";
# basic address check. No "@", and user.dom.ain (two or more dots)
- if (($rr->rname =~ /@/)||!($rr->rname =~ /\..*\./)) {
- &printerr("WARN", "SOA contact name (" . $rr->rname .
- ") is invalid\n");
+ if (($rname =~ /@/)||!($rname =~ /[^.]+(\.[^.]+){2,}/)) {
+ &printerr("WARN", "SOA contact name (" . $rname . ") is invalid\n");
}
} elsif ($rr->type eq "PTR") {
print STDERR 'p' if $opt_d;