diff --git a/src/shrpx_dns_resolver.cc b/src/shrpx_dns_resolver.cc index 32dfc0a6..d7c77ebd 100644 --- a/src/shrpx_dns_resolver.cc +++ b/src/shrpx_dns_resolver.cc @@ -216,7 +216,9 @@ void DNSResolver::reset_timeout() { if (tv == nullptr) { return; } - timer_.repeat = tv->tv_sec + tv->tv_usec / 1000000.; + // To avoid that timer_.repeat becomes 0, which makes ev_timer_again + // useless, add tiny fraction of time. + timer_.repeat = tv->tv_sec + tv->tv_usec / 1000000. + 1e-9; ev_timer_again(loop_, &timer_); }