From fbbb95745bd7669ae7760b53b4bbbd3329401db1 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Thu, 12 Nov 2015 15:22:46 +0000 Subject: [PATCH] Add library deinit interface --- src/libutil/util.c | 12 ++++++++++++ src/libutil/util.h | 5 +++++ src/rspamd.c | 1 + 3 files changed, 18 insertions(+) diff --git a/src/libutil/util.c b/src/libutil/util.c index 1a70f1b6f..d347a3829 100644 --- a/src/libutil/util.c +++ b/src/libutil/util.c @@ -1958,6 +1958,18 @@ rspamd_init_libs (void) return ctx; } +void +rspamd_deinit_libs (struct rspamd_external_libs_ctx *ctx) +{ + if (ctx != NULL) { + if (ctx->libmagic) { + magic_close (ctx->libmagic); + } + + g_slice_free1 (sizeof (*ctx), ctx); + } +} + guint64 rspamd_hash_seed (void) { diff --git a/src/libutil/util.h b/src/libutil/util.h index f2156c60a..75aa4850a 100644 --- a/src/libutil/util.h +++ b/src/libutil/util.h @@ -391,6 +391,11 @@ struct rspamd_external_libs_ctx; */ struct rspamd_external_libs_ctx* rspamd_init_libs (void); +/** + * Destroy external libraries context + */ +void rspamd_deinit_libs (struct rspamd_external_libs_ctx *ctx); + /** * Returns some statically initialized random hash seed * @return hash seed diff --git a/src/rspamd.c b/src/rspamd.c index edaa5a52f..c816b455a 100644 --- a/src/rspamd.c +++ b/src/rspamd.c @@ -1113,6 +1113,7 @@ main (gint argc, gchar **argv, gchar **env) rspamd_symbols_cache_destroy (rspamd_main->cfg->cache); rspamd_log_close (rspamd_main->logger); rspamd_config_free (rspamd_main->cfg); + rspamd_deinit_libs (rspamd_main->cfg->libs_ctx); g_free (rspamd_main->cfg); g_free (rspamd_main); event_base_free (ev_base); -- 2.39.5