summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/forward.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/forward.c b/src/forward.c
index 52d5b8e..14d9421 100644
--- a/src/forward.c
+++ b/src/forward.c
@@ -1241,7 +1241,10 @@ void reply_query(int fd, time_t now)
free_rfds(&forward->rfds);
/* calculate modified moving average of server latency */
- server->mma_latency += dnsmasq_milliseconds() - forward->forward_timestamp - server->query_latency;
+ if (server->query_latency == 0)
+ server->mma_latency = (dnsmasq_milliseconds() - forward->forward_timestamp) * 128; /* init */
+ else
+ server->mma_latency += dnsmasq_milliseconds() - forward->forward_timestamp - server->query_latency;
/* denominator controls how many queries we average over. */
server->query_latency = server->mma_latency/128;