summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/feature/relay/dns.c11
-rw-r--r--src/feature/relay/dns.h1
2 files changed, 10 insertions, 2 deletions
diff --git a/src/feature/relay/dns.c b/src/feature/relay/dns.c
index f4e39dfd3d..8a49829d55 100644
--- a/src/feature/relay/dns.c
+++ b/src/feature/relay/dns.c
@@ -2076,14 +2076,21 @@ dns_cache_entry_count(void)
return HT_SIZE(&cache_root);
}
+/* Return the total size in bytes of the DNS cache. */
+size_t
+dns_cache_total_allocation(void)
+{
+ return sizeof(struct cached_resolve_t) * dns_cache_entry_count() +
+ HT_MEM_USAGE(&cache_root);
+}
+
/** Log memory information about our internal DNS cache at level 'severity'. */
void
dump_dns_mem_usage(int severity)
{
/* This should never be larger than INT_MAX. */
int hash_count = dns_cache_entry_count();
- size_t hash_mem = sizeof(struct cached_resolve_t) * hash_count;
- hash_mem += HT_MEM_USAGE(&cache_root);
+ size_t hash_mem = dns_cache_total_allocation();
/* Print out the count and estimated size of our &cache_root. It undercounts
hostnames in cached reverse resolves.
diff --git a/src/feature/relay/dns.h b/src/feature/relay/dns.h
index 69c1764b73..1d5266c73f 100644
--- a/src/feature/relay/dns.h
+++ b/src/feature/relay/dns.h
@@ -38,6 +38,7 @@ void dns_launch_correctness_checks(void);
int dns_seems_to_be_broken(void);
int dns_seems_to_be_broken_for_ipv6(void);
void dns_reset_correctness_checks(void);
+size_t dns_cache_total_allocation(void);
void dump_dns_mem_usage(int severity);
#ifdef DNS_PRIVATE