Clear cache every N seconds (until I build a better mechanism)
This commit is contained in:
parent
b871a60c64
commit
40ef38963b
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue