aboutsummaryrefslogtreecommitdiffstats
path: root/src/logging.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@gnumonks.org>2016-04-20 10:41:27 +0200
committerHarald Welte <laforge@gnumonks.org>2016-05-05 18:49:22 +0200
commit69e6c3c7cdaeabbe31f66fffe9606cb6ee2ec8ee (patch)
treefcd391571c6ba74faba4df043bd1cf8e6413b679 /src/logging.c
parentcd9cb90f452ed83a3df0bf9d136aea19186c7f7b (diff)
Add log_fini() function to release all memory allocated by logging framework
This is e.g. quite useful to call at the end of test code, in order to show that all memory allocated actually is released before exit().
Diffstat (limited to 'src/logging.c')
-rw-r--r--src/logging.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/logging.c b/src/logging.c
index b96e64a1..4d6fd40d 100644
--- a/src/logging.c
+++ b/src/logging.c
@@ -880,6 +880,21 @@ int log_init(const struct log_info *inf, void *ctx)
return 0;
}
+/* \brief De-initialize the Osmocom logging core
+ * This function destroys all targets and releases associated memory */
+void log_fini(void)
+{
+ struct log_target *tar, *tar2;
+
+ llist_for_each_entry_safe(tar, tar2, &osmo_log_target_list, entry)
+ log_target_destroy(tar);
+
+ talloc_free(osmo_log_info);
+ osmo_log_info = NULL;
+ talloc_free(tall_log_ctx);
+ tall_log_ctx = NULL;
+}
+
/*! \brief Check whether a log entry will be generated.
* \returns != 0 if a log entry might get generated by at least one target */
int log_check_level(int subsys, unsigned int level)