BUG/MINOR: resolvers: Unlink DNS resolution to set RMAINT on SRV resolution

When a server is set in RMAINT becaues of a SRV resolution failure, the
server DNS resolution, if any, must be unlink first. It is mandatory to
handle the change in the context of a SRV resolution.

This patch must be backported as far as 2.2.
diff --git a/src/resolvers.c b/src/resolvers.c
index 68e3e21..96431f4 100644
--- a/src/resolvers.c
+++ b/src/resolvers.c
@@ -571,13 +571,13 @@
 					if (srv->srvrq == srvrq && srv->svc_port == item->port &&
 					    item->data_len == srv->hostname_dn_len &&
 					    !resolv_hostname_cmp(srv->hostname_dn, item->target, item->data_len)) {
+						resolv_unlink_resolution(srv->resolv_requester);
 						snr_update_srv_status(srv, 1);
 						ha_free(&srv->hostname);
 						ha_free(&srv->hostname_dn);
 						srv->hostname_dn_len = 0;
 						memset(&srv->addr, 0, sizeof(srv->addr));
 						srv->svc_port = 0;
-						resolv_unlink_resolution(srv->resolv_requester);
 					}
 					HA_SPIN_UNLOCK(SERVER_LOCK, &srv->lock);
 				}
diff --git a/src/server.c b/src/server.c
index c577dc8..f1ba3cf 100644
--- a/src/server.c
+++ b/src/server.c
@@ -3261,6 +3261,7 @@
 	for (s = srvrq->proxy->srv; s != NULL; s = s->next) {
 		HA_SPIN_LOCK(SERVER_LOCK, &s->lock);
 		if (s->srvrq == srvrq) {
+			resolv_unlink_resolution(s->resolv_requester);
 			snr_update_srv_status(s, 1);
 			free(s->hostname);
 			free(s->hostname_dn);
@@ -3269,7 +3270,6 @@
 			s->hostname_dn_len = 0;
 			memset(&s->addr, 0, sizeof(s->addr));
 			s->svc_port = 0;
-			resolv_unlink_resolution(s->resolv_requester);
 		}
 		HA_SPIN_UNLOCK(SERVER_LOCK, &s->lock);
 	}