r += snprintf (out_buf + r, sizeof (out_buf) - r, "Shared chunks allocated: %ld" CRLF, (long int)mem_st.shared_chunks_allocated);
r += snprintf (out_buf + r, sizeof (out_buf) - r, "Chunks freed: %ld" CRLF, (long int)mem_st.chunks_freed);
r += snprintf (out_buf + r, sizeof (out_buf) - r, "Oversized chunks: %ld" CRLF, (long int)mem_st.oversized_chunks);
+ r += snprintf (out_buf + r, sizeof (out_buf) - r, "Fuzzy hashes stored: %u" CRLF, session->worker->srv->stat->fuzzy_hashes);
+ r += snprintf (out_buf + r, sizeof (out_buf) - r, "Fuzzy hashes expired: %u" CRLF, session->worker->srv->stat->fuzzy_hashes_expired);
/* Now write statistics for each statfile */
cur_cl = g_list_first (session->cfg->classifiers);
while (cur_cl) {
/* For evtimer */
static struct timeval tmv;
static struct event tev;
+static struct rspamd_stat *server_stat;
struct rspamd_fuzzy_node {
int32_t value;
cur = g_list_next (cur);
g_queue_delete_link (hashes[i], tmp);
bloom_del (bf, node->h.hash_pipe);
+ server_stat->fuzzy_hashes_expired ++;
+ server_stat->fuzzy_hashes --;
g_free (node);
continue;
}
}
g_queue_push_head (hashes[node->h.block_size % BUCKETS], node);
bloom_add (bf, node->h.hash_pipe);
+ server_stat->fuzzy_hashes ++;
}
(void)unlock_file (fd, FALSE);
g_queue_push_head (hashes[cmd->blocksize % BUCKETS], h);
bloom_add (bf, cmd->hash);
mods++;
+ server_stat->fuzzy_hashes ++;
msg_info ("fuzzy hash was successfully added");
return TRUE;
g_queue_delete_link (hashes[cmd->blocksize % BUCKETS], tmp);
bloom_del (bf, cmd->hash);
msg_info ("fuzzy hash was successfully deleted");
+ server_stat->fuzzy_hashes --;
res = TRUE;
mods++;
continue;
event_init ();
+ server_stat = worker->srv->stat;
+
init_signals (&signals, sig_handler);
sigprocmask (SIG_UNBLOCK, &signals.sa_mask, NULL);
gperf_profiler_init (worker->srv->cfg, "fuzzy");
+
event_loop (0);
exit (EXIT_SUCCESS);
}
unsigned int connections_count; /**< total connections count */
unsigned int control_connections_count; /**< connections count to control interface */
unsigned int messages_learned; /**< messages learned */
+ unsigned int fuzzy_hashes; /**< number of fuzzy hashes stored */
+ unsigned int fuzzy_hashes_expired; /**< number of fuzzy hashes expired */
};
/**