From: Baptiste Assmann Date: Mon, 14 Aug 2017 14:35:45 +0000 (+0200) Subject: MINOR: dns: enable caching of responses for server set by a SRV record X-Git-Tag: v1.8-dev3~177 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6fb8192b28a90d75cb1c40f8ad472c72ff335a66;p=thirdparty%2Fhaproxy.git MINOR: dns: enable caching of responses for server set by a SRV record The function srv_set_fqdn() is used to update a server's fqdn and set accordingly its DNS resolution. Current implementation prevents a server whose update is triggered by a SRV record from being linked to an existing resolution in the cache (if applicable). This patch aims at fixing this. --- diff --git a/src/server.c b/src/server.c index cfbdb3d715..caf84c6ae0 100644 --- a/src/server.c +++ b/src/server.c @@ -4133,9 +4133,14 @@ int srv_set_fqdn(struct server *srv, const char *hostname) /* first, we need to unlink our server from its current resolution */ srv_free_from_resolution(srv); } else { - resolution = srv->resolution; - resolution->last_resolution = now_ms; - did_set_reso = 1; + /* this server's fqdn has been set by a SRV record */ + resolution = dns_resolution_list_get(srv->resolvers, trash.str, srv->dns_requester->prefered_query_type); + srv_free_from_resolution(srv); + srv->resolution = resolution; + if (resolution->hostname_dn == NULL) { + resolution->last_resolution = now_ms; + did_set_reso = 1; + } } /* now we update server's parameters */