#lang racket/base ;; Noddy representation of a zone, and various zone and RRSet utilities. (require racket/unit) (require racket/pretty) (require racket/set) (require racket/match) (require "api.rkt") (require "codec.rkt") (require "zonedb.rkt") (require "ground-udp-operations-unit.rkt") (require "network-query-unit.rkt") (require "resolver-unit.rkt") (define-values/invoke-unit/infer (link resolver@ network-query@ ground-udp-operations@)) ;; (require racket/trace) ;; (trace ;;resolve-from-zone ;; ;;build-referral ;; ;;incorporate-claims ;; ;;additional-section/a ;; ;;network-query ;; ;;network-query/addresses ;; ;;dns-message->claims ;; ;;negative-network-query-result ;; ;;closest-untried-nameservers ;; ;;answer-from-zone ;; ;;merge-replies ;; ;;in-bailiwick? ;; ) (pretty-print (resolve-from-zone (question ;;'(#"www" #"google" #"com") ;;'(#"foo" #"rallyx" #"ccs" #"neu" #"edu") '(#"rallyx" #"ccs" #"neu" #"edu") 'a 'in) (compile-zone-db ;; (list (rr '() 'ns 'in 30 '(#"google-public-dns-a" #"google" #"com")) ;; (rr '(#"google-public-dns-a" #"google" #"com") 'a 'in 30 '#(8 8 8 8))) (list (rr '() 'ns 'in 30 '(#"f" #"root-servers" #"net")) (rr '(#"f" #"root-servers" #"net") 'a 'in 30 '#(198 41 0 4)) (rr '(#"f" #"root-servers" #"net") 'a 'in 30 '#(192 228 79 201)) (rr '(#"f" #"root-servers" #"net") 'a 'in 30 '#(192 33 4 12)) (rr '(#"f" #"root-servers" #"net") 'a 'in 30 '#(192 203 230 10)) (rr '(#"f" #"root-servers" #"net") 'a 'in 30 '#(192 112 36 4)) (rr '(#"f" #"root-servers" #"net") 'a 'in 30 '#(128 63 2 53)) (rr '(#"f" #"root-servers" #"net") 'a 'in 30 '#(192 58 128 30)) (rr '(#"f" #"root-servers" #"net") 'a 'in 30 '#(193 0 14 129))) ) #f #t (set)))