From b469f11de66965df12a25919e4bde66ae466b7fa Mon Sep 17 00:00:00 2001 From: DL6ER Date: Tue, 30 Apr 2024 11:37:04 +0200 Subject: [PATCH] Add temporary verbose log output. To be removed (or send to DHCP debug logging later on) Signed-off-by: DL6ER --- src/database/database-thread.c | 2 -- src/database/query-table.c | 6 ++++++ src/dnsmasq/cache.c | 3 +++ src/dnsmasq/lease.c | 18 ++++++++++++++++++ 4 files changed, 27 insertions(+), 2 deletions(-) diff --git a/src/database/database-thread.c b/src/database/database-thread.c index efdd1bd6a..9397bf561 100644 --- a/src/database/database-thread.c +++ b/src/database/database-thread.c @@ -117,9 +117,7 @@ void *DB_thread(void *val) // Do this once per second if(now > before) { - lock_shm(); queries_to_database(); - unlock_shm(); before = now; // Check if we need to reload gravity diff --git a/src/database/query-table.c b/src/database/query-table.c index f66d5152a..053836839 100644 --- a/src/database/query-table.c +++ b/src/database/query-table.c @@ -1356,6 +1356,9 @@ bool queries_to_database(void) return false; } + // Lock shared memory for reading + lock_shm(); + // Loop over recent queries and store new or changed ones in the in-memory database const unsigned int min_iter = counters->queries - 1; unsigned int max_iter = min_iter > DB_QUERY_MAX_ITER ? min_iter - DB_QUERY_MAX_ITER : 0; @@ -1599,6 +1602,9 @@ bool queries_to_database(void) query->flags.database.changed = false; } + // Unlock shared memory + unlock_shm(); + // Finalize all statements for(unsigned int i = 0; i < ArraySize(stmts); i++) { diff --git a/src/dnsmasq/cache.c b/src/dnsmasq/cache.c index eba13d24e..8da90d509 100644 --- a/src/dnsmasq/cache.c +++ b/src/dnsmasq/cache.c @@ -17,6 +17,7 @@ #include "dnsmasq.h" #include "dnsmasq_interface.h" #include "webserver/webserver.h" +#include "log.h" static struct crec *cache_head = NULL, *cache_tail = NULL, **hash_table = NULL; #ifdef HAVE_DHCP @@ -1577,6 +1578,8 @@ void cache_add_dhcp_entry(char *host_name, int prot, break; } } + + log_info("Adding DHCP->DNS entry for %s at %s", host_name, daemon->addrbuff); /* if in hosts, don't need DHCP record */ if (in_hosts) diff --git a/src/dnsmasq/lease.c b/src/dnsmasq/lease.c index 55e8443b8..23c0952c5 100644 --- a/src/dnsmasq/lease.c +++ b/src/dnsmasq/lease.c @@ -14,6 +14,9 @@ along with this program. If not, see . */ + +#include "log.h" + #include "dnsmasq.h" #ifdef HAVE_DHCP @@ -559,6 +562,8 @@ void lease_prune(struct dhcp_lease *target, time_t now) if (lease->hostname) dns_dirty = 1; + log_info("DHCP lease %s expired (%s)", inet_ntoa(lease->addr), ctime(&now)); + daemon->metrics[lease->addr.s_addr ? METRIC_LEASES_PRUNED_4 : METRIC_LEASES_PRUNED_6]++; *up = lease->next; /* unlink */ @@ -925,6 +930,7 @@ static void kill_name(struct dhcp_lease *lease) /* this shouldn't happen unless updates are very quick and the script very slow, we just avoid a memory leak if it does. */ + log_info("kill_name(): Freeing old hostname lease %s -> %s", inet_ntoa(lease->addr), lease->old_hostname); free(lease->old_hostname); /* If we know the fqdn, pass that. The helper will derive the @@ -932,11 +938,15 @@ static void kill_name(struct dhcp_lease *lease) if (lease->fqdn) { + log_info("kill_name(): Freeing hostname lease %s -> %s", inet_ntoa(lease->addr), lease->hostname); lease->old_hostname = lease->fqdn; free(lease->hostname); } else + { + log_info("kill_name(): Replacing old by new hostname lease %s -> %s", inet_ntoa(lease->addr), lease->hostname); lease->old_hostname = lease->hostname; + } lease->hostname = lease->fqdn = NULL; } @@ -966,6 +976,8 @@ void lease_calc_fqdns(void) strcpy(lease->fqdn, lease->hostname); strcat(lease->fqdn, "."); strcat(lease->fqdn, domain); + + log_info("lease_calc_fqdns(): lease %s -> %s", inet_ntoa(lease->addr), lease->fqdn); } } } @@ -1059,6 +1071,8 @@ void lease_set_hostname(struct dhcp_lease *lease, const char *name, int auth, ch if (auth) lease->flags |= LEASE_AUTH_NAME; + + log_info("lease_set_hostname(): lease %s -> %s / %s", inet_ntoa(lease->addr), lease->hostname, lease->fqdn); file_dirty = 1; dns_dirty = 1; @@ -1116,6 +1130,7 @@ int do_script_run(time_t now) #ifdef HAVE_SCRIPT queue_script(ACTION_OLD_HOSTNAME, lease, lease->old_hostname, now); #endif + log_info("do_script_run(): Freeing old hostname lease %s -> %s", inet_ntoa(lease->addr), lease->old_hostname); free(lease->old_hostname); lease->old_hostname = NULL; return 1; @@ -1138,6 +1153,7 @@ int do_script_run(time_t now) emit_dbus_signal(ACTION_DEL, lease, lease->old_hostname); #endif old_leases = lease->next; + log_info("do_script_run(): Freeing lease %s -> %s", inet_ntoa(lease->addr), lease->old_hostname); free(lease->old_hostname); free(lease->clid); @@ -1155,6 +1171,7 @@ int do_script_run(time_t now) #ifdef HAVE_SCRIPT queue_script(ACTION_OLD_HOSTNAME, lease, lease->old_hostname, now); #endif + log_info("do_script_run(): Freeing old hostname lease %s -> %s", inet_ntoa(lease->addr), lease->old_hostname); free(lease->old_hostname); lease->old_hostname = NULL; return 1; @@ -1165,6 +1182,7 @@ int do_script_run(time_t now) ((lease->flags & LEASE_AUX_CHANGED) && option_bool(OPT_LEASE_RO)) || ((lease->flags & LEASE_EXP_CHANGED) && option_bool(OPT_LEASE_RENEW))) { + log_info("do_script_run(): Lease %s %s -> %s", (lease->flags & LEASE_NEW) ? "NEW" : "CHANGED", inet_ntoa(lease->addr), lease->old_hostname); #ifdef HAVE_SCRIPT queue_script((lease->flags & LEASE_NEW) ? ACTION_ADD : ACTION_OLD, lease, lease->fqdn ? lease->fqdn : lease->hostname, now);