]> gitweb.factorcode.org Git - factor.git/commitdiff
added srv parsing
authorSteve Ayerhart <steve@ayerh.art>
Tue, 21 Apr 2020 17:52:51 +0000 (12:52 -0500)
committerJohn Benediktsson <mrjbq7@gmail.com>
Tue, 21 Apr 2020 18:00:17 +0000 (18:00 +0000)
extra/dns/dns.factor

index 970898aff6b7a70555175a3d16164cab4e7257c4..6bb3204b32141b1e0196d8ed89a3a30f93f58515 100644 (file)
@@ -64,6 +64,8 @@ TUPLE: mx preference exchange ;
 
 TUPLE: soa mname rname serial refresh retry expire minimum ;
 
+TUPLE: srv priority weight port target ;
+
 TUPLE: a name ;
 CONSTRUCTOR: <a> a ( name -- obj ) ;
 
@@ -204,6 +206,13 @@ CONSTANT: ipv6-arpa-suffix ".ip6.arpa"
         2 read be> >>preference
         parse-name >>exchange ;
 
+: parse-srv ( -- srv )
+    srv new
+    2 read be> >>priority
+    2 read be> >>weight
+    2 read be> >>port
+    parse-name >>target ;
+
 GENERIC: parse-rdata ( n type -- obj )
 
 M: object parse-rdata drop read ;
@@ -214,6 +223,7 @@ M: MX parse-rdata 2drop parse-mx ;
 M: NS parse-rdata 2drop parse-name <ns> ;
 M: PTR parse-rdata 2drop parse-name <ptr> ;
 M: SOA parse-rdata 2drop parse-soa ;
+M: SRV parse-rdata 2drop parse-srv ;
 
 : parse-rr ( -- rr )
     rr new
@@ -342,6 +352,7 @@ M: TXT rdata>byte-array
 : dns-MX-query ( name -- message ) MX IN dns-query ;
 : dns-NS-query ( name -- message ) NS IN dns-query ;
 : dns-TXT-query ( name -- message ) TXT IN dns-query ;
+: dns-SRV-query ( name -- message ) SRV IN dns-query ;
 
 : read-TXT-strings ( byte-array -- strings )
     [