diff --git a/src/resolvers.c b/src/resolvers.c
index 4d960b7..66712dd 100644
--- a/src/resolvers.c
+++ b/src/resolvers.c
@@ -224,6 +224,37 @@
 }
 
 
+/* finds and return the SRV answer item associated to a requester (whose type is 'server').
+ *
+ * returns NULL in case of error or not found.
+ */
+struct resolv_answer_item *find_srvrq_answer_record(const struct resolv_requester *requester)
+{
+	struct resolv_resolution *res;
+	struct resolv_answer_item *item;
+	struct server          *srv;
+
+	if (!requester)
+		return NULL;
+
+	if ((srv = objt_server(requester->owner)) == NULL)
+		return NULL;
+	/* check if the server is managed by a SRV record */
+	if (srv->srvrq == NULL)
+		return NULL;
+
+	res = srv->srvrq->requester->resolution;
+	/* search an ANSWER record whose target points to the server's hostname and whose port is
+	 * the same as server's svc_port */
+	list_for_each_entry(item, &res->response.answer_list, list) {
+		if (resolv_hostname_cmp(srv->hostname_dn, item->target, srv->hostname_dn_len) == 0 &&
+		    (srv->svc_port == item->port))
+			return item;
+	}
+
+	return NULL;
+}
+
 /* 2 bytes random generator to generate DNS query ID */
 static inline uint16_t resolv_rnd16(void)
 {
