#define QUERY_TIMEOUT_USEC (30 * USEC_PER_SEC)
#define ATTEMPTS_MAX 8
#define CNAME_MAX 8
+#define QUERIES_MAX 2048
static int dns_query_transaction_start(DnsQueryTransaction *t);
while (q->transactions)
dns_query_transaction_free(q->transactions);
- if (q->manager)
+ if (q->manager) {
LIST_REMOVE(queries, q->manager->dns_queries, q);
+ q->manager->n_dns_queries--;
+ }
for (n = 0; n < q->n_keys; n++)
free(q->keys[n].name);
if (n_keys <= 0 || n_keys >= 65535)
return -EINVAL;
+ if (m->n_dns_queries >= QUERIES_MAX)
+ return -EBUSY;
+
assert(keys);
q = new0(DnsQuery, 1);
}
LIST_PREPEND(queries, m->dns_queries, q);
+ m->n_dns_queries++;
q->manager = m;
if (ret)
Hashmap *dns_query_transactions;
LIST_HEAD(DnsQuery, dns_queries);
+ unsigned n_dns_queries;
LIST_HEAD(DnsServer, dns_servers);
DnsServer *current_dns_server;