]> gitweb.factorcode.org Git - factor.git/commitdiff
Implement resolve-host for dns vocab
authorDoug Coleman <doug.coleman@gmail.com>
Sun, 3 Oct 2010 08:31:12 +0000 (03:31 -0500)
committerDoug Coleman <doug.coleman@gmail.com>
Tue, 5 Oct 2010 14:56:29 +0000 (09:56 -0500)
extra/dns/dns.factor

index 4d14b27e89f1ee1bfe9503cc4f85199dcce0dc07..84a9b6d50d11f75d09249c64db0eeff596164a36 100644 (file)
@@ -330,7 +330,7 @@ M: SOA rdata>byte-array
 
 : udp-query ( bytes server -- bytes' )
     f 0 <inet4> <datagram>
-    5 seconds over set-timeout [
+    30 seconds over set-timeout [
         [ send ] [ receive drop ] bi
     ] with-disposal ;
 
@@ -358,6 +358,10 @@ M: SOA rdata>byte-array
 : message>names ( message -- names )
     answer-section>> [ rdata>> name>> ] map ;
 
+: message>a-names ( message -- names )
+    answer-section>>
+    [ rdata>> ] map [ a? ] filter [ name>> ] map ;
+
 : message>mxs ( message -- assoc )
     answer-section>> [ rdata>> [ preference>> ] [ exchange>> ] bi 2array ] map ;
 
@@ -395,6 +399,8 @@ M: SOA rdata>byte-array
     [ dns-A-query a-message. ]
     [ dns-AAAA-query a-message. ]
     [ dns-MX-query mx-message. ] tri ;
+
+! M: string resolve-host dns-A-query message>a-names [ <ipv4> ] map ;
     
 HOOK: initial-dns-servers os ( -- seq )