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 d63c3f1..2271b10 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: