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;
openSUSE Build Service is sponsored by