Module: kamailio Branch: master Commit: d79bc9b9b85f247d8b4bca37d2f84d4dcb412730 URL: https://github.com/kamailio/kamailio/commit/d79bc9b9b85f247d8b4bca37d2f84d4d...
Author: Daniel-Constantin Mierla miconda@gmail.com Committer: Daniel-Constantin Mierla miconda@gmail.com Date: 2025-06-24T20:40:34+02:00
core: dns - macro wrappers to print more details on dns hash put
---
Modified: src/core/dns_cache.c Modified: src/core/dns_cache.h
---
Diff: https://github.com/kamailio/kamailio/commit/d79bc9b9b85f247d8b4bca37d2f84d4d... Patch: https://github.com/kamailio/kamailio/commit/d79bc9b9b85f247d8b4bca37d2f84d4d...
---
diff --git a/src/core/dns_cache.c b/src/core/dns_cache.c index 0a2553f58f2..c6dc68a7930 100644 --- a/src/core/dns_cache.c +++ b/src/core/dns_cache.c @@ -162,14 +162,15 @@ inline static void dns_destroy_entry_shm_unsafe(struct dns_hash_entry *e)
/* dec. the internal refcnt and if 0 deletes the entry */ -void dns_hash_put(struct dns_hash_entry *e) +void dns_hash_put_entry( + struct dns_hash_entry *e, const char *fpath, unsigned int line) { if(e != NULL) { if(atomic_dec_and_test(&e->refcnt)) { /* atomic_sub_long(dns_cache_total_used, e->total_size); */ dns_destroy_entry(e); } else if(e->next == NULL && e->prev == NULL) { - LM_WARN("unlinked item %p\n", e); + LM_WARN("unlinked item %p (%s:%u)\n", e, fpath, line); } } } @@ -177,14 +178,15 @@ void dns_hash_put(struct dns_hash_entry *e)
/* same as above but uses dns_destroy_unsafe (assumes shm_lock held -- tm * optimization) */ -void dns_hash_put_shm_unsafe(struct dns_hash_entry *e) +void dns_hash_put_entry_shm_unsafe( + struct dns_hash_entry *e, const char *fpath, unsigned int line) { if(e != NULL) { if(atomic_dec_and_test(&e->refcnt)) { /* atomic_sub_long(dns_cache_total_used, e->total_size); */ dns_destroy_entry_shm_unsafe(e); } else if(e->next == NULL && e->prev == NULL) { - LM_WARN("unlinked item %p\n", e); + LM_WARN("unlinked item %p (%s:%u)\n", e, fpath, line); } } } diff --git a/src/core/dns_cache.h b/src/core/dns_cache.h index d92fd3dc27f..18bb3733730 100644 --- a/src/core/dns_cache.h +++ b/src/core/dns_cache.h @@ -193,24 +193,31 @@ int init_dns_cache_stats(int iproc_num); #endif void destroy_dns_cache(void);
+void dns_hash_put_entry( + struct dns_hash_entry *e, const char *fpath, unsigned int line); +void dns_hash_put_entry_shm_unsafe( + struct dns_hash_entry *e, const char *fpath, unsigned int line);
-void dns_hash_put(struct dns_hash_entry *e); -void dns_hash_put_shm_unsafe(struct dns_hash_entry *e); +#define dns_hash_put(e) dns_hash_put_entry(e, __FILE__, __LINE__) +#define dns_hash_put_shm_unsafe(e) \ + dns_hash_put_entry_shm_unsafe(e, __FILE__, __LINE__)
-inline static void dns_srv_handle_put(struct dns_srv_handle *h) +inline static void dns_srv_handle_put_helper( + struct dns_srv_handle *h, const char *fpath, unsigned int line) { if(h) { if(h->srv) { - dns_hash_put(h->srv); + dns_hash_put_entry(h->srv, fpath, line); h->srv = 0; } if(h->a) { - dns_hash_put(h->a); + dns_hash_put_entry(h->a, fpath, line); h->a = 0; } } }
+#define dns_srv_handle_put(h) dns_srv_handle_put_helper(h, __FILE__, __LINE__)
/** @brief use it when copying, it manually increases the ref cound */ inline static void dns_srv_handle_ref(struct dns_srv_handle *h)