mirage / ocaml-dns

OCaml implementation of the DNS protocol
BSD 2-Clause "Simplified" License
105 stars 43 forks source link

DNS stub connection management #216

Closed hannesm closed 3 years ago

hannesm commented 4 years ago

(see https://github.com/mirage/ocaml-dns/pull/209#discussion_r372144816)

at the moment, the DNS stub resolver multiplexes over a single TCP connection. Upon connection termination, all pending responses are discarded. Instead: a timeout should be introduced; multiple upstream resolvers could be asked for. This is especially unfortunate in situations with changing upstream routing (i.e. changing IP address due to DSL/LTE switch, DSL reconnect, etc.).

hannesm commented 3 years ago

this has been addressed in ed49a42 - now if the connection terminates, a new one is established and the outstanding requests are re-issued on the new connection. a timeout was introduced in #223.