Merge branch '3709-fix-dns_resolver-hash-tables' into 'main'

Refactor the dns_resolver fetch context hash tables and locking

Closes #3709

See merge request isc-projects/bind9!7142
This commit is contained in:
Ondřej Surý
2022-12-01 13:35:08 +00:00
3 changed files with 858 additions and 1061 deletions

View File

@@ -1,3 +1,8 @@
6035. [bug] Refactor the dns_resolver unit to store the fetch
contexts and zone counter directly in the hash
tables without buckets and implement effective
cleaning of both objects. [GL #3709]
6034. [func] Deprecate alt-transfer-source, alt-transfer-source-v6
and use-alt-transfer-source. [GL #3694]

View File

@@ -50,11 +50,16 @@
#include <isc/event.h>
#include <isc/lang.h>
#include <isc/refcount.h>
#include <isc/stats.h>
#include <dns/fixedname.h>
#include <dns/types.h>
#include <netinet/in.h>
#undef DNS_RESOLVER_TRACE
ISC_LANG_BEGINDECLS
/*%
@@ -253,11 +258,19 @@ dns_resolver_shutdown(dns_resolver_t *res);
*\li 'res' is a valid resolver.
*/
void
dns_resolver_attach(dns_resolver_t *source, dns_resolver_t **targetp);
void
dns_resolver_detach(dns_resolver_t **resp);
#if DNS_RESOLVER_TRACE
#define dns_resolver_ref(ptr) \
dns_resolver__ref(ptr, __func__, __FILE__, __LINE__)
#define dns_resolver_unref(ptr) \
dns_resolver__unref(ptr, __func__, __FILE__, __LINE__)
#define dns_resolver_attach(ptr, ptrp) \
dns_resolver__attach(ptr, ptrp, __func__, __FILE__, __LINE__)
#define dns_resolver_detach(ptrp) \
dns_resolver__detach(ptrp, __func__, __FILE__, __LINE__)
ISC_REFCOUNT_TRACE_DECL(dns_resolver);
#else
ISC_REFCOUNT_DECL(dns_resolver);
#endif
isc_result_t
dns_resolver_createfetch(dns_resolver_t *res, const dns_name_t *name,

File diff suppressed because it is too large Load Diff