From 9b8c904fa1822fd8d4e46a99a5d81e1f9956bb78 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 23 Feb 2021 12:33:17 +0100 Subject: [PATCH] BUG/MEDIUM: resolvers: Reset address for unresolved servers If the DNS resolution failed for a server, its ip address must be removed. Otherwise, the server is stopped but keeps its ip. This may be confusing when the servers state are retrieved on the CLI and it may lead to undefined behavior if HAproxy is configured to load its servers state from a file. This patch should be backported as far as 2.0. (cherry picked from commit d127ffa9f439a4eb05455f371191694f22dd7a5b) Signed-off-by: Christopher Faulet --- src/server.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/server.c b/src/server.c index b5a5554..d741f16 100644 --- a/src/server.c +++ b/src/server.c @@ -3991,6 +3991,7 @@ int snr_resolution_error_cb(struct dns_requester *requester, int error_code) return 1; HA_SPIN_LOCK(SERVER_LOCK, &s->lock); snr_update_srv_status(s, 0); + memset(&s->addr, 0, sizeof(s->addr)); HA_SPIN_UNLOCK(SERVER_LOCK, &s->lock); return 1; } -- 1.7.10.4