MINOR: resolvers: Don't try to match immediatly renewed ADD items
The loop looking for existing ADD items to renew their last_seen must ignore
the items already renewed in the same loop. To do so, we rely on the
last_seen time. because it is now based on now_ms, it is safe.
Doing so avoid to match several time the same ADD item when the same IP
address is found in several ADD item. This reduces the number of extra DNS
resolutions.
This patch depends on "MINOR: resolvers: Use milliseconds for cached items
in resolver responses". Both may be backported as far as 2.2 if necessary.
(cherry picked from commit e8674c71840cd783d6ba1cc073c0d074aea09fd8)
Signed-off-by: Christopher Faulet <cfaulet@haproxy.com>
diff --git a/src/dns.c b/src/dns.c
index c9ffcf7..07bdde5 100644
--- a/src/dns.c
+++ b/src/dns.c
@@ -1302,7 +1302,7 @@
continue;
ar_item = tmp_record->ar_item;
- if (ar_item->type != dns_answer_record->type ||
+ if (ar_item->type != dns_answer_record->type || ar_item->last_seen == now_ms ||
len != tmp_record->data_len ||
dns_hostname_cmp(dns_answer_record->name, tmp_record->target, tmp_record->data_len))
continue;