From 20668c8b95781c09b3043d45cf82a5414c83bdc4 Mon Sep 17 00:00:00 2001
From: Iryna Antsyferova <iryna.antsyferova@genexis.eu>
Date: Wed, 7 May 2025 13:37:12 +0200
Subject: [PATCH] Fix DNS lookup conflict by replacing ub_resolve_async with
 ub_resolve for multiple SIP clients registrations, REF 15147

---
 res/res_resolver_unbound.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/res/res_resolver_unbound.c b/res/res_resolver_unbound.c
index 47cd883ceb..84d61e7c78 100644
--- a/res/res_resolver_unbound.c
+++ b/res/res_resolver_unbound.c
@@ -290,6 +290,7 @@ static int unbound_resolver_resolve(struct ast_dns_query *query)
 {
 	struct unbound_config *cfg = ao2_global_obj_ref(globals);
 	struct unbound_resolver_data *data;
+	struct ub_result *ub_result;
 	int res;
 
 	data = ao2_alloc_options(sizeof(*data), unbound_resolver_data_dtor,
@@ -302,9 +303,11 @@ static int unbound_resolver_resolve(struct ast_dns_query *query)
 	data->resolver = ao2_bump(cfg->global->state->resolver);
 	ast_dns_resolver_set_data(query, data);
 
-	res = ub_resolve_async(data->resolver->context, ast_dns_query_get_name(query),
+	res = ub_resolve(data->resolver->context, ast_dns_query_get_name(query),
 		ast_dns_query_get_rr_type(query), ast_dns_query_get_rr_class(query),
-		ao2_bump(query), unbound_resolver_callback, &data->id);
+		&ub_result);
+
+	unbound_resolver_callback(ao2_bump(query), res, ub_result);
 
 	if (res) {
 		ast_log(LOG_ERROR, "Failed to perform async DNS resolution of '%s'\n",
-- 
GitLab