diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-11-12 15:22:46 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2015-11-12 15:22:46 +0000 |
commit | fbbb95745bd7669ae7760b53b4bbbd3329401db1 (patch) | |
tree | b8d2b401756f902f1910d5c1035ecff7ef7980ed /src | |
parent | 56fdb79c495ab76cbde7cc7b12d3751b662fb9c4 (diff) | |
download | rspamd-fbbb95745bd7669ae7760b53b4bbbd3329401db1.tar.gz rspamd-fbbb95745bd7669ae7760b53b4bbbd3329401db1.zip |
Add library deinit interface
Diffstat (limited to 'src')
-rw-r--r-- | src/libutil/util.c | 12 | ||||
-rw-r--r-- | src/libutil/util.h | 5 | ||||
-rw-r--r-- | src/rspamd.c | 1 |
3 files changed, 18 insertions, 0 deletions
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 @@ -392,6 +392,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); |