From: Michael Orlitzky Date: Thu, 5 Dec 2019 15:28:40 +0000 (-0500) Subject: Add support for SRV records. X-Git-Url: http://gitweb.michael.orlitzky.com/?p=valtz.git;a=commitdiff_plain;h=9d29c28941ca629e223d0d4f20a833f10375d331;hp=7c5df8ad5c18a9f8b9440dbd1ae4faacf55b452a Add support for SRV records. There is a patch for djbdns that adds support for SRV records to both tinydns-data and axfr-get: From: Michael Handler To: dns@list.cr.yp.to Subject: tinydns-data SRV & axfr-get SRV/PTR patches Date: Thu, 14 Sep 2000 20:37:50 -040 Many distributions carry the patch, but valtz rejects the SRV records because it doesn't recognize the "S" indicator or know how to validate the port, weight, or priority fields. This commit adds support for the new record type, and adds validation routines for the three new fields. All of them are the same: ports, weights, and priorities are all integers between 0 and 65536. --- diff --git a/valtz b/valtz old mode 100644 new mode 100755 index eebda76..92aaa40 --- a/valtz +++ b/valtz @@ -100,6 +100,9 @@ my %token_name = ( 'min' => 'Minimum time', 'n' => 'Record type number', 'rdata' => 'Resource data', + 'port' => 'Port', + 'priority' => 'Priority', + 'weight' => 'Weight' ); my %record_type = ( @@ -114,6 +117,7 @@ my %record_type = ( "'" => 'TXT', '^' => 'PTR', 'C' => 'CNAME', + 'S' => 'SRV', 'Z' => 'SOA', ':' => 'GENERIC' ); @@ -131,6 +135,8 @@ my %line_type = ( "'" => [ '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' ] @@ -340,6 +346,21 @@ my %token_validator = ( # 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; }],