cur = g_list_next (cur);
}
- if (rspamd_fuzzy_backend_finish_update (ctx->backend, source)) {
+ if (rspamd_fuzzy_backend_finish_update (ctx->backend, source, nupdates > 0)) {
ctx->stat.fuzzy_hashes = rspamd_fuzzy_backend_count (ctx->backend);
- for (i = 0; i < ctx->mirrors->len; i ++) {
- m = g_ptr_array_index (ctx->mirrors, i);
+ if (nupdates > 0) {
+ for (i = 0; i < ctx->mirrors->len; i ++) {
+ m = g_ptr_array_index (ctx->mirrors, i);
- rspamd_fuzzy_send_update_mirror (ctx, m);
+ rspamd_fuzzy_send_update_mirror (ctx, m);
+ }
}
/* Clear updates */
gboolean
rspamd_fuzzy_backend_finish_update (struct rspamd_fuzzy_backend *backend,
- const gchar *source)
+ const gchar *source, gboolean version_bump)
{
- gint rc, wal_frames, wal_checkpointed, ver;
+ gint rc = SQLITE_OK, wal_frames, wal_checkpointed, ver;
/* Get and update version */
- ver = rspamd_fuzzy_backend_version (backend, source);
- ++ver;
+ if (version_bump) {
+ ver = rspamd_fuzzy_backend_version (backend, source);
+ ++ver;
- rc = rspamd_fuzzy_backend_run_stmt (backend, TRUE,
+ rc = rspamd_fuzzy_backend_run_stmt (backend, TRUE,
RSPAMD_FUZZY_BACKEND_SET_VERSION,
(gint64)ver, (gint64)time (NULL), source);
+ }
if (rc == SQLITE_OK) {
rc = rspamd_fuzzy_backend_run_stmt (backend, TRUE,
* Commit updates to storage
*/
gboolean rspamd_fuzzy_backend_finish_update (struct rspamd_fuzzy_backend *backend,
- const gchar *source);
+ const gchar *source, gboolean version_bump);
/**
* Sync storage