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.).
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.
(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.).