From: Vsevolod Stakhov Date: Mon, 23 Feb 2015 11:11:52 +0000 (+0000) Subject: Use xxh64 for upstreams hashing. X-Git-Tag: 0.9.0~641 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a022d264bb0838e7ff170f3165e169a81baab3d9;p=thirdparty%2Frspamd.git Use xxh64 for upstreams hashing. --- diff --git a/src/libutil/upstream.c b/src/libutil/upstream.c index 36aa94c616..61f40d4193 100644 --- a/src/libutil/upstream.c +++ b/src/libutil/upstream.c @@ -634,19 +634,14 @@ rspamd_consistent_hash (guint64 key, guint32 nbuckets) static struct upstream* rspamd_upstream_get_hashed (struct upstream_list *ups, const guint8 *key, guint keylen) { - union { - guint64 k64; - guint32 k32[2]; - } h; - + guint64 k; guint32 idx; /* Generate 64 bits input key */ - h.k32[0] = XXH32 (key, keylen, ((guint32*)&ups->hash_seed)[0]); - h.k32[1] = XXH32 (key, keylen, ((guint32*)&ups->hash_seed)[1]); + k = XXH64 (key, keylen, ups->hash_seed); rspamd_mutex_lock (ups->lock); - idx = rspamd_consistent_hash (h.k64, ups->alive->len); + idx = rspamd_consistent_hash (k, ups->alive->len); rspamd_mutex_unlock (ups->lock); return g_ptr_array_index (ups->alive, idx);