]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
BUG/MINOR: resolvers: Reset server IP when no ip is found in the response
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 24 Jun 2021 13:26:03 +0000 (15:26 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Thu, 24 Jun 2021 15:22:36 +0000 (17:22 +0200)
For A/AAAA resolution, if no ip is found for a server in the response, the
server is set to RMAINT status. However, its address must also be
reset. Otherwise, it is still reported by the cli on "show servers state"
commands. This may be confusing.

This patch may be backported as far as 2.0.

src/server.c

index d63c3f1e3805e60d0e86cee108695a13610bf403..2271b10b47fbd5032278d6bca8751b2a81fa98cd 100644 (file)
@@ -3436,8 +3436,8 @@ int snr_resolution_cb(struct resolv_requester *requester, struct dns_counters *c
        srv_update_addr(s, firstip, firstip_sin_family, (char *) chk->area);
 
  update_status:
-
-       snr_update_srv_status(s, has_no_ip);
+       if (!snr_update_srv_status(s, has_no_ip) && has_no_ip)
+               memset(&s->addr, 0, sizeof(s->addr));
        return 1;
 
  invalid: