aboutsummaryrefslogtreecommitdiffstats
path: root/src/libserver/fuzzy_backend.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2018-07-06 12:24:54 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2018-07-06 12:24:54 +0100
commitffab92f4ff7f4ba5d34adf51ad9b9125ec7e1d27 (patch)
treeb20569205eed22b9401313e062f65e1d7b40c4a6 /src/libserver/fuzzy_backend.c
parentfecf59abe34ff596bd504661f3d82fb996ceaa6c (diff)
downloadrspamd-ffab92f4ff7f4ba5d34adf51ad9b9125ec7e1d27.tar.gz
rspamd-ffab92f4ff7f4ba5d34adf51ad9b9125ec7e1d27.zip
[Feature] Add more extended statistics about fuzzy updates
Diffstat (limited to 'src/libserver/fuzzy_backend.c')
-rw-r--r--src/libserver/fuzzy_backend.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/libserver/fuzzy_backend.c b/src/libserver/fuzzy_backend.c
index 13aef8ba8..6de977ff6 100644
--- a/src/libserver/fuzzy_backend.c
+++ b/src/libserver/fuzzy_backend.c
@@ -166,7 +166,7 @@ rspamd_fuzzy_backend_update_sqlite (struct rspamd_fuzzy_backend *bk,
struct fuzzy_peer_cmd *io_cmd;
struct rspamd_fuzzy_cmd *cmd;
gpointer ptr;
- guint nupdates = 0;
+ guint nupdates = 0, nadded = 0, ndeleted = 0, nextended = 0, nignored = 0;
if (rspamd_fuzzy_backend_sqlite_prepare_update (sq, src)) {
for (i = 0; i < updates->len; i ++) {
@@ -183,14 +183,21 @@ rspamd_fuzzy_backend_update_sqlite (struct rspamd_fuzzy_backend *bk,
if (cmd->cmd == FUZZY_WRITE) {
rspamd_fuzzy_backend_sqlite_add (sq, ptr);
+ nadded ++;
nupdates ++;
}
else if (cmd->cmd == FUZZY_DEL) {
rspamd_fuzzy_backend_sqlite_del (sq, ptr);
+ ndeleted ++;
nupdates ++;
}
else {
- /* Do nothing for expire, this backend should no longer be used */
+ if (cmd->cmd == FUZZY_REFRESH) {
+ nextended ++;
+ }
+ else {
+ nignored ++;
+ }
}
}
@@ -201,7 +208,7 @@ rspamd_fuzzy_backend_update_sqlite (struct rspamd_fuzzy_backend *bk,
}
if (cb) {
- cb (success, ud);
+ cb (success, nadded, ndeleted, nextended, nignored, ud);
}
}
@@ -437,7 +444,7 @@ rspamd_fuzzy_backend_process_updates (struct rspamd_fuzzy_backend *bk,
bk->subr->update (bk, updates, src, cb, ud, bk->subr_ud);
}
else if (cb) {
- cb (TRUE, ud);
+ cb (TRUE, 0, 0, 0, 0, ud);
}
}