From: Vsevolod Stakhov Date: Mon, 14 Dec 2015 18:28:33 +0000 (+0000) Subject: Fix fuzzy stats X-Git-Tag: 1.1.0~304 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=45384ca0ba44f87a34eb1e1207f6f6b545f457a2;p=thirdparty%2Frspamd.git Fix fuzzy stats --- diff --git a/src/fuzzy_storage.c b/src/fuzzy_storage.c index 9bb542df87..4bbb96689b 100644 --- a/src/fuzzy_storage.c +++ b/src/fuzzy_storage.c @@ -791,6 +791,7 @@ rspamd_fuzzy_storage_stat (struct rspamd_main *rspamd_main, GHashTable *ip_hash; struct fuzzy_key_stat *key_stat; struct rspamd_http_keypair *kp; + rspamd_lru_element_t *lru_elt; ucl_object_t *obj, *elt, *ip_elt, *ip_cur; struct ucl_emitter_functions *emit_subr; guchar fdspace[CMSG_SPACE(sizeof (int))]; @@ -836,7 +837,8 @@ rspamd_fuzzy_storage_stat (struct rspamd_main *rspamd_main, ip_elt = ucl_object_typed_new (UCL_OBJECT); while (g_hash_table_iter_next (&ip_it, &k, &v)) { - ip_cur = rspamd_fuzzy_storage_stat_key (v); + lru_elt = v; + ip_cur = rspamd_fuzzy_storage_stat_key (lru_elt->data); ucl_object_insert_key (ip_elt, ip_cur, rspamd_inet_address_to_string (k), 0, true); } diff --git a/src/libutil/hash.c b/src/libutil/hash.c index 51cc4207cb..845e2fc3ff 100644 --- a/src/libutil/hash.c +++ b/src/libutil/hash.c @@ -30,16 +30,6 @@ * LRU hashing */ -typedef struct rspamd_lru_element_s { - gpointer data; - gpointer key; - time_t store_time; - guint ttl; - rspamd_lru_hash_t *hash; - GList *link; - -} rspamd_lru_element_t; - struct rspamd_lru_hash_s { gint maxsize; gint maxage; diff --git a/src/libutil/hash.h b/src/libutil/hash.h index bb55f25952..62005f9f8f 100644 --- a/src/libutil/hash.h +++ b/src/libutil/hash.h @@ -12,6 +12,17 @@ struct rspamd_lru_hash_s; typedef struct rspamd_lru_hash_s rspamd_lru_hash_t; +typedef struct rspamd_lru_element_s { + gpointer data; + gpointer key; + time_t store_time; + guint ttl; + rspamd_lru_hash_t *hash; + GList *link; + +} rspamd_lru_element_t; + + /** * Create new lru hash * @param maxsize maximum elements in a hash @@ -72,13 +83,13 @@ void rspamd_lru_hash_insert (rspamd_lru_hash_t *hash, void rspamd_lru_hash_destroy (rspamd_lru_hash_t *hash); /** - * Get hash table for this lru hash + * Get hash table for this lru hash (use rspamd_lru_element_t as data) */ GHashTable *rspamd_lru_hash_get_htable (rspamd_lru_hash_t *hash); /** - * Get expire queue for this lru hash + * Get expire queue for this lru hash (use rspamd_lru_element_t as data) */ GQueue *rspamd_lru_hash_get_queue (rspamd_lru_hash_t *hash);