Clear cache every N seconds (until I build a better mechanism)

This commit is contained in:
Tony Garnock-Jones 2012-02-06 14:24:30 -05:00
parent b871a60c64
commit 40ef38963b
1 changed files with 6 additions and 1 deletions

View File

@ -142,15 +142,20 @@
(send-message (answer->reply original-question answer)))])))]))
(define (question-dispatcher zone0 client-sock)
(define cache-clear-interval (* 60 1000))
(os-big-bang zone0
;; TODO: consider deduping questions here too?
(send-message (set-timer 'clear-dns-cache cache-clear-interval #t))
(subscribe 'question-handler-factory
(message-handlers zone
[(? question? q)
(transition zone
(spawn (question-handler zone q client-sock)))]
[(network-reply _ answer)
(incorporate-complete-answer answer zone)]))))
(incorporate-complete-answer answer zone)]
[(timer-expired 'clear-dns-cache _)
(transition zone0
(send-message (set-timer 'clear-dns-cache cache-clear-interval #t)))]))))
(struct question-state (zone q client-sock nameservers-tried retry-count) #:transparent)
(struct expanding-cnames (q accumulator remaining-count) #:transparent)