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 cfbdb3d..caf84c6 100644
--- a/src/server.c
+++ b/src/server.c
@@ -4133,9 +4133,14 @@
/* 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 */