82 lines
4.3 KiB
Diff
82 lines
4.3 KiB
Diff
diff --git a/dnssec-tools/tools/modules/ZoneFile-Fast/Fast.pm b/dnssec-tools/tools/modules/ZoneFile-Fast/Fast.pm
|
|
index 880d1a7..cc9c6d3 100644
|
|
--- a/dnssec-tools/tools/modules/ZoneFile-Fast/Fast.pm
|
|
+++ b/dnssec-tools/tools/modules/ZoneFile-Fast/Fast.pm
|
|
@@ -81,8 +81,8 @@ my $MAXIMUM_TTL = 0x7fffffff;
|
|
|
|
my $pat_ttl = qr{\d+[\dwdhms]*}i;
|
|
my $pat_skip = qr{\s*(?:;.*)?};
|
|
-my $pat_name = qr{[-\*\w\$\d\/*]+(?:\.[-\*\w\$\d\/]+)*};
|
|
-my $pat_maybefullnameorroot = qr{(?:\.|[-\w\$\d\/*]+(?:\.[-\w\$\d\/]+)*\.?)};
|
|
+my $pat_name = qr{(?:[-\*\w\$\d\/*]|\\[0-2]\d\d)+(?:\.(?:[-\*\w\$\d\/]|\\[0-2]\d\d)+)*};
|
|
+my $pat_maybefullnameorroot = qr{(?:\.|(?:[-\w\$\d\/*]|\\[0-2]\d\d)+(?:\.(?:[-\w\$\d\/]|\\[0-2]\d\d)+)*\.?)};
|
|
|
|
#
|
|
# Added the ability to have a backslash in the SOA username. This is to
|
|
@@ -90,7 +90,7 @@ my $pat_maybefullnameorroot = qr{(?:\.|[-\w\$\d\/*]+(?:\.[-\w\$\d\/]+)*\.?)};
|
|
# dots in usernames. Keeping the original version here for easy reference.
|
|
#
|
|
# my $pat_maybefullname = qr{[-\w\$\d\/*]+(?:\.[-\w\$\d\/]+)*\.?};
|
|
-my $pat_maybefullname = qr{[-\+\w\$\d\/*\\]+(?:\.[-\+\w\$\d\/]+)*\.?};
|
|
+my $pat_maybefullname = qr{(?:[-\+\w\$\d\/*\\]|\\[0-2]\d\d)+(?:\.(?:[-\+\w\$\d\/]|\\[0-2]\d\d)+)*\.?};
|
|
|
|
my $debug;
|
|
my $domain;
|
|
@@ -983,7 +983,7 @@ sub parse_line
|
|
} elsif (/\G(nsec3)[ \t]+/igc) {
|
|
error ("You are missing required modules for NSEC3 support")
|
|
if (!$nsec3capable);
|
|
- if (/\G\s*(\d+)\s+(\d+)\s+(\d+)\s+([-0-9A-Fa-f]+)\s+($pat_maybefullname)\s+(.*?)$pat_skip$/gc) {
|
|
+ if (/\G\s*(\d+)\s+(\d+)\s+(\d+)\s+([-0-9A-Fa-f]+)\s+($pat_maybefullname)\s*(.*?)$pat_skip$/gc) {
|
|
# XXX: set the typebm field ourselves?
|
|
my ($alg, $flags, $iters, $salt, $nxthash, $typelist) =
|
|
($1, $2, $3, $4, $5, $6);
|
|
@@ -1335,7 +1335,7 @@ sub parse_tlsa
|
|
sub parse_nsec3
|
|
{
|
|
#got more data
|
|
- if ( /\G\s*((\w+\s+)+)\)\s*$/) {
|
|
+ if ( /\G\s*((\w+\s+)*)\)\s*$/) {
|
|
my $typelist = $1;
|
|
$typelist = join(" ",sort split(/\s+/,$typelist));
|
|
$nsec3->{ 'typelist' } = $typelist;
|
|
diff --git a/dnssec-tools/tools/modules/ZoneFile-Fast/t/rr-dnssec.t b/dnssec-tools/tools/modules/ZoneFile-Fast/t/rr-dnssec.t
|
|
index ef050de..a87b957 100644
|
|
--- a/dnssec-tools/tools/modules/ZoneFile-Fast/t/rr-dnssec.t
|
|
+++ b/dnssec-tools/tools/modules/ZoneFile-Fast/t/rr-dnssec.t
|
|
@@ -1,4 +1,4 @@
|
|
-# This is -*- perl -*-
|
|
+ # This is -*- perl -*-
|
|
|
|
use Net::DNS::ZoneFile::Fast;
|
|
|
|
@@ -29,11 +29,16 @@ BEGIN {
|
|
|
|
# failing oddly during text compare. spacing is different.
|
|
q{nospace.dnssec-tools.org. 86400 RRSIG SOA 5 2 86400 20060429134027 20060330134027 42869 dnssec-tools.org. QZzAz5sVC5+n7vJhkXfFaN/sdjKXVpT/nv22 NJI+sDde180Sj1pDXW6mFt+Efg4uUAuyLQup jLv20EVM8/oBPA7DjNu2CZHGe8UDeuAoqIth Q/79Ltw4NtP7W1zWAs/ms/oSKiKYrAUHqt0U UskiXkCA1GKn6RNqVT4+IuSUgALLYSMLjlaA 2kE/KaffqeGnynIO2AC5BMFzUlxCSMDSxus3 bJm2xAIxMiUYomw9XfbGfrkCtfIrH+H/LVG/ X2K/kKxjcFcQhkukMUxjzzmAP3xJHq6vgwVM tpm/qaR0g5jH5B46iJefGYzwcMAyexbLOQEW uv1Xs6i/lBwQo9T7xw= },
|
|
- q{dnssec-tools.org. 10800 NSEC cvs.dnssec-tools.org A DNSKEY MX NS NSEC RRSIG SOA TXT},
|
|
+ q{dnssec-tools.org. 10800 NSEC cvs.dnssec-tools.org. A DNSKEY MX NS NSEC RRSIG SOA TXT},
|
|
+ q{dnssec-tools.org. 10800 NSEC mor\145text.dnssec-tools.org. CNAME RRSIG NSEC},
|
|
q{THA2IPMDLT9RU307BO9LQ6MF5K565A6M.example.com. 10800 IN NSEC3 1 0 100 610b88f0d9f42c74 QIVB7DNNE2T5J9HLI4FRE9PN61F754CK A RRSIG},
|
|
q{THA2IPMDLT9RU307BO9LQ6MF5K565A6M.example.com. 10800 IN NSEC3 1 0 100 610b88f0d9f42c74 (
|
|
QIVB7DNNE2T5J9HLI4FRE9PN61F754CK
|
|
A RRSIG )},
|
|
+ q{THA2IPMDLT9RU307BO9LQ6MF5K565A6M.example.com. 10800 IN NSEC3 1 0 100 610b88f0d9f42c74 QIVB7DNNE2T5J9HLI4FRE9PN61F754CK},
|
|
+ q{THA2IPMDLT9RU307BO9LQ6MF5K565A6M.example.com. 10800 IN NSEC3 1 0 100 610b88f0d9f42c74 (
|
|
+ QIVB7DNNE2T5J9HLI4FRE9PN61F754CK
|
|
+ )},
|
|
|
|
q{example.com 0 NSEC3PARAM 1 0 100 610b88f0d9f42c74},
|
|
|
|
diff --git a/dnssec-tools/tools/modules/ZoneFile-Fast/t/rrs.t b/dnssec-tools/tools/modules/ZoneFile-Fast/t/rrs.t
|
|
index 768950d..2539b1c 100644
|
|
--- a/dnssec-tools/tools/modules/ZoneFile-Fast/t/rrs.t
|
|
+++ b/dnssec-tools/tools/modules/ZoneFile-Fast/t/rrs.t
|
|
@@ -36,6 +36,7 @@ BEGIN {
|
|
q{* IN A 1.2.3.4},
|
|
q{* 10 IN A 1.2.3.4},
|
|
# q{* IN 10 A 1.2.3.4}, XXX newer Net::DNS does not like this syntax
|
|
+ q{fo\157.acme.com. 10 IN A 1.2.3.4},
|
|
q{acme.com. 200 IN MX 10 mailhost.acme.com.},
|
|
q{acme.com. 200 IN MX 10 .},
|
|
q{acme.com. IN MX 10 mailhost.acme.com.},
|