BUG/MINOR: dns: server set by SRV records stay in "no resolution" status

This patch fixes a bug where some servers managed by SRV record query
types never ever recover from a "no resolution" status.
The problem is due to a wrong function called when breaking the
server/resolution (A/AAAA) relationship: this is performed when a server's SRV
record disappear from the SRV response.
diff --git a/include/proto/server.h b/include/proto/server.h
index d35a9c1..6663770 100644
--- a/include/proto/server.h
+++ b/include/proto/server.h
@@ -57,6 +57,7 @@
 int snr_resolution_cb(struct dns_requester *requester, struct dns_nameserver *nameserver);
 int snr_resolution_error_cb(struct dns_requester *requester, int error_code);
 struct server *snr_check_ip_callback(struct server *srv, void *ip, unsigned char *ip_family);
+void srv_free_from_resolution(struct server *srv);
 
 /* increase the number of cumulated connections on the designated server */
 static void inline srv_inc_sess_ctr(struct server *s)
diff --git a/src/dns.c b/src/dns.c
index d46160f..c91d423 100644
--- a/src/dns.c
+++ b/src/dns.c
@@ -564,10 +564,7 @@
 									srv->hostname_dn_len = 0;
 									free(srv->hostname_dn);
 									srv->hostname_dn = NULL;
-									dns_resolution_free(srv->resolvers, srv->resolution);
-									srv->resolution = dns_resolution_list_get(srv->resolvers, NULL, srv->dns_requester->prefered_query_type);
-									if (resolution == srv->resolution)
-										removed_reso = 1;
+									srv_free_from_resolution(srv);
 								}
 							}
 						}
diff --git a/src/server.c b/src/server.c
index caf84c6..917ed09 100644
--- a/src/server.c
+++ b/src/server.c
@@ -1692,7 +1692,7 @@
  *   - move resolution's hostname_dn and hostname_dn_len to the next requester
  *     available (when applied)
  */
-static void srv_free_from_resolution(struct server *srv)
+void srv_free_from_resolution(struct server *srv)
 {
 	struct dns_requester *requester;
 	int count;