1007 => 'parts must not end with the - character',
1008 => 'integer out of bounds',
1009 => 'must have at least three labels to be valid as mail address',
- 1010 => 'must not 2(NS), 5(CNAME), 6(SOA), 12(PTR), 15(MX) or 252(AXFR)',
+ 1010 => 'must not be 2(NS), 5(CNAME), 6(SOA), 12(PTR), 15(MX) or 252(AXFR)',
);
# NOTE : ONLY translate the right-hand part
'min' => 'Minimum time',
'n' => 'Record type number',
'rdata' => 'Resource data',
+ 'port' => 'Port',
+ 'priority' => 'Priority',
+ 'weight' => 'Weight'
);
my %record_type = (
"'" => 'TXT',
'^' => 'PTR',
'C' => 'CNAME',
+ 'S' => 'SRV',
'Z' => 'SOA',
':' => 'GENERIC'
);
"'" => [ 'TXT', 'fqdn:s:ttl:timestamp:lo', 'fqdn:s' ],
'^' => [ 'PTR', 'fqdn:p:ttl:timestamp:lo', 'fqdn:p' ],
'C' => [ 'CNAME', 'fqdn:p:ttl:timestamp:lo', 'fqdn:p' ],
+ 'S' => [ 'SRV', 'fqdn:ip:x:port:weight:priority:ttl:timestamp:lo',
+ 'fqdn:x:port' ],
'Z' => [ 'SOA', 'fqdn:mname:rname:ser:ref:ret:exp:min:ttl:timestamp:lo',
'fqdn:mname:rname' ],
':' => [ 'GENERIC', 'fqdn:n:rdata:ttl:timestamp:lo', 'fqdn:n:rdata' ]
# check all parts
for my $hostpart (split /\./, $s)
{
- return 1005 unless $hostpart =~ /^[-a-z0-9]+$/i;
+ return 1005 unless $hostpart =~ /^_?[-a-z0-9]+$/i;
return 1006 if $hostpart =~ /^-/;
return 1007 if $hostpart =~ /-$/;
}
# check all parts
for (split /\./, $s)
{
- return 1005 unless /^[-[a-z0-9]+$/i;
+ return 1005 unless /^_?[-[a-z0-9]+$/i;
return 1006 if /^-/;
return 1007 if /-$/;
}
my ($type, $s) = @_;
my $result = validate_integer($s, 65535);
- return 1010 if ($s==2)||($s==5)||($s==6)||($s==12)||($s==15)||($s=252);
+ return 1010 if ($s==2)||($s==5)||($s==6)||($s==12)||($s==15)||($s==252);
return $result;
}],
# TODO : Validation needed?
my $result = 0;
return $result;
+ }],
+ 'port' => [ 21, sub {
+ my ($type, $s) = @_;
+ my $result = validate_integer($s, 65536);
+ return $result;
+ }],
+ 'priority' => [ 22, sub {
+ my ($type, $s) = @_;
+ my $result = validate_integer($s, 65536);
+ return $result;
+ }],
+ 'weight' => [ 23, sub {
+ my ($type, $s) = @_;
+ my $result = validate_integer($s, 65536);
+ return $result;
}],