return;
}
- checksum = XXH32 (cbdata->buf->str, cbdata->buf->len, 0xdead);
+ checksum = XXH64 (cbdata->buf->str, cbdata->buf->len, 0);
if (data->map->checksum != checksum) {
/* New data available */
parser = ucl_parser_new (0);
{
struct rspamd_keypair_elt *elt = (struct rspamd_keypair_elt *)ptr;
- return XXH32 (elt->pair, sizeof (elt->pair), 0xdeadbabe);
+ return XXH64 (elt->pair, sizeof (elt->pair), rspamd_hash_seed ());
}
static gboolean
static inline guint32
rspamd_log_calculate_cksum (const gchar *message, size_t mlen)
{
- return XXH32 (message, mlen, 0xdeadbeef);
+ return XXH32 (message, mlen, rspamd_hash_seed ());
}
/*
XXH64_state_t st;
fp = len - leftover;
- XXH64_reset (&st, 0xdeadbabe);
+ XXH64_reset (&st, rspamd_hash_seed ());
for (i = 0; i != fp; i += 4) {
u.c.c1 = s[i], u.c.c2 = s[i + 1], u.c.c3 = s[i + 2], u.c.c4 = s[i + 3];
len = strlen ((const gchar *)key);
- return XXH64 (key, len, 0xdeadbabe);
+ return XXH64 (key, len, rspamd_hash_seed ());
}
gboolean
const struct rspamd_url *url = u;
XXH64_state_t st;
- XXH64_reset (&st, 0xdeadbabe);
+ XXH64_reset (&st, rspamd_hash_seed ());
if (url->hostlen > 0) {
XXH64_update (&st, url->host, url->hostlen);
g_mime_init (0);
#endif
}
+
+guint64
+rspamd_hash_seed (void)
+{
+ static guint64 seed;
+
+ if (seed == 0) {
+ seed = ottery_rand_uint64 ();
+ }
+
+ return seed;
+}
*/
void rspamd_init_libs (void);
+/**
+ * Returns some statically initialized random hash seed
+ * @return hash seed
+ */
+guint64 rspamd_hash_seed (void);
+
#endif
static inline uintptr_t
make_listen_key (struct rspamd_worker_bind_conf *cf)
{
- gpointer xxh;
+ XXH64_state_t st;
guint i, keylen;
guint8 *key;
rspamd_inet_addr_t *addr;
guint16 port;
- xxh = XXH32_init (0xdeadbeef);
+ XXH64_reset (&st, rspamd_hash_seed ());
if (cf->is_systemd) {
- XXH32_update (xxh, "systemd", sizeof ("systemd"));
- XXH32_update (xxh, &cf->cnt, sizeof (cf->cnt));
+ XXH64_update (&st, "systemd", sizeof ("systemd"));
+ XXH64_update (&st, &cf->cnt, sizeof (cf->cnt));
}
else {
- XXH32_update (xxh, cf->name, strlen (cf->name));
+ XXH64_update (&st, cf->name, strlen (cf->name));
for (i = 0; i < cf->cnt; i ++) {
addr = g_ptr_array_index (cf->addrs, i);
key = rspamd_inet_address_get_radix_key (
addr, &keylen);
- XXH32_update (xxh, key, keylen);
+ XXH64_update (&st, key, keylen);
port = rspamd_inet_address_get_port (addr);
- XXH32_update (xxh, &port, sizeof (port));
+ XXH64_update (&st, &port, sizeof (port));
}
}
- return XXH32_digest (xxh);
+ return XXH64_digest (&st);
}
static void
},
logging = {
type = 'console',
- level = 'info'
+ level = 'debug'
},
metric = {
name = 'default',