From: Vsevolod Stakhov Date: Thu, 8 Oct 2015 15:36:02 +0000 (+0100) Subject: Allow opening of fuzzy storage with no vacuum. X-Git-Tag: 1.0.5~55 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0f74ebee2bcb2714390bdc861bbec2017093289c;p=thirdparty%2Frspamd.git Allow opening of fuzzy storage with no vacuum. --- diff --git a/src/fuzzy_storage.c b/src/fuzzy_storage.c index 51611d5230..7ed5ea6b11 100644 --- a/src/fuzzy_storage.c +++ b/src/fuzzy_storage.c @@ -507,6 +507,7 @@ start_fuzzy (struct rspamd_worker *worker) struct rspamd_fuzzy_storage_ctx *ctx = worker->ctx; GError *err = NULL; gdouble next_check; + struct event usr2_ ctx->ev_base = rspamd_prepare_worker (worker, "fuzzy", @@ -514,7 +515,10 @@ start_fuzzy (struct rspamd_worker *worker) server_stat = worker->srv->stat; - if ((ctx->backend = rspamd_fuzzy_backend_open (ctx->hashfile, &err)) == NULL) { + /* + * Open DB and perform VACUUM + */ + if ((ctx->backend = rspamd_fuzzy_backend_open (ctx->hashfile, TRUE, &err)) == NULL) { msg_err ("cannot open backend: %e", err); g_error_free (err); exit (EXIT_SUCCESS); diff --git a/src/libserver/fuzzy_backend.c b/src/libserver/fuzzy_backend.c index 41363ae13a..dad109819f 100644 --- a/src/libserver/fuzzy_backend.c +++ b/src/libserver/fuzzy_backend.c @@ -407,8 +407,10 @@ rspamd_fuzzy_backend_open_db (const gchar *path, GError **err) return bk; } -struct rspamd_fuzzy_backend* -rspamd_fuzzy_backend_open (const gchar *path, GError **err) +struct rspamd_fuzzy_backend * +rspamd_fuzzy_backend_open (const gchar *path, + gboolean vacuum, + GError **err) { gchar *dir; gint fd; @@ -494,7 +496,11 @@ rspamd_fuzzy_backend_open (const gchar *path, GError **err) sqlite3_errmsg (backend->db)); } - rspamd_fuzzy_backend_run_simple (RSPAMD_FUZZY_BACKEND_VACUUM, backend, NULL); + if (vacuum) { + rspamd_fuzzy_backend_run_simple (RSPAMD_FUZZY_BACKEND_VACUUM, + backend, + NULL); + } if (rspamd_fuzzy_backend_run_stmt (backend, RSPAMD_FUZZY_BACKEND_COUNT) == SQLITE_OK) { diff --git a/src/libserver/fuzzy_backend.h b/src/libserver/fuzzy_backend.h index f0b934c3ef..41a6096dd2 100644 --- a/src/libserver/fuzzy_backend.h +++ b/src/libserver/fuzzy_backend.h @@ -35,7 +35,8 @@ struct rspamd_fuzzy_backend; * @param err error pointer * @return backend structure or NULL */ -struct rspamd_fuzzy_backend* rspamd_fuzzy_backend_open (const gchar *path, +struct rspamd_fuzzy_backend *rspamd_fuzzy_backend_open (const gchar *path, + gboolean vacuum, GError **err); /**