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)))])))]))
|
(send-message (answer->reply original-question answer)))])))]))
|
||||||
|
|
||||||
(define (question-dispatcher zone0 client-sock)
|
(define (question-dispatcher zone0 client-sock)
|
||||||
|
(define cache-clear-interval (* 60 1000))
|
||||||
(os-big-bang zone0
|
(os-big-bang zone0
|
||||||
;; TODO: consider deduping questions here too?
|
;; TODO: consider deduping questions here too?
|
||||||
|
(send-message (set-timer 'clear-dns-cache cache-clear-interval #t))
|
||||||
(subscribe 'question-handler-factory
|
(subscribe 'question-handler-factory
|
||||||
(message-handlers zone
|
(message-handlers zone
|
||||||
[(? question? q)
|
[(? question? q)
|
||||||
(transition zone
|
(transition zone
|
||||||
(spawn (question-handler zone q client-sock)))]
|
(spawn (question-handler zone q client-sock)))]
|
||||||
[(network-reply _ answer)
|
[(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 question-state (zone q client-sock nameservers-tried retry-count) #:transparent)
|
||||||
(struct expanding-cnames (q accumulator remaining-count) #:transparent)
|
(struct expanding-cnames (q accumulator remaining-count) #:transparent)
|
||||||
|
|
Loading…
Reference in New Issue