summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/asterisk/dns_internal.h4
-rw-r--r--main/dns_query_set.c8
2 files changed, 10 insertions, 2 deletions
diff --git a/include/asterisk/dns_internal.h b/include/asterisk/dns_internal.h
index be8794ba9..d517748f8 100644
--- a/include/asterisk/dns_internal.h
+++ b/include/asterisk/dns_internal.h
@@ -161,7 +161,7 @@ struct ast_dns_query_recurring {
struct dns_query_set_query {
/*! \brief Whether the query started successfully or not */
unsigned int started;
- /*! \brief THe query itself */
+ /*! \brief The query itself */
struct ast_dns_query *query;
};
@@ -169,7 +169,7 @@ struct dns_query_set_query {
struct ast_dns_query_set {
/*! \brief DNS queries */
AST_VECTOR(, struct dns_query_set_query) queries;
- /* \brief Whether the query set is in progress or not */
+ /*! \brief Whether the query set is in progress or not */
int in_progress;
/*! \brief The total number of completed queries */
int queries_completed;
diff --git a/main/dns_query_set.c b/main/dns_query_set.c
index 8dfc5eaeb..147c737f6 100644
--- a/main/dns_query_set.c
+++ b/main/dns_query_set.c
@@ -117,6 +117,14 @@ int ast_dns_query_set_add(struct ast_dns_query_set *query_set, const char *name,
return -1;
}
+ /*
+ * We are intentionally passing NULL for the user data even
+ * though dns_query_set_callback() is not NULL tolerant. Doing
+ * this avoids a circular reference chain until the queries are
+ * started. ast_dns_query_set_resolve_async() will set the
+ * query user_data for us later when we actually kick off the
+ * queries.
+ */
query.query = dns_query_alloc(name, rr_type, rr_class, dns_query_set_callback, NULL);
if (!query.query) {
return -1;