diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2017-02-13 15:57:10 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2017-02-13 15:57:10 +0000 |
commit | 413f74a3577cfe252ed6082f19662d94ffa43549 (patch) | |
tree | c372e37485d1e7a03c86061cd792ae899128d8db /src/libserver/url.c | |
parent | ce060358955a96d65196a9ee431be8d9db87d46e (diff) | |
download | rspamd-413f74a3577cfe252ed6082f19662d94ffa43549.tar.gz rspamd-413f74a3577cfe252ed6082f19662d94ffa43549.zip |
[Fix] Fix urls and emails hashes
Diffstat (limited to 'src/libserver/url.c')
-rw-r--r-- | src/libserver/url.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/src/libserver/url.c b/src/libserver/url.c index c4c5fd038..420c0f959 100644 --- a/src/libserver/url.c +++ b/src/libserver/url.c @@ -2584,7 +2584,24 @@ rspamd_url_hash (gconstpointer u) rspamd_cryptobox_fast_hash_update (&st, url->string, url->urllen); } - rspamd_cryptobox_fast_hash_update (&st, &url->flags, sizeof (url->flags)); + return rspamd_cryptobox_fast_hash_final (&st); +} + +guint +rspamd_email_hash (gconstpointer u) +{ + const struct rspamd_url *url = u; + rspamd_cryptobox_fast_hash_state_t st; + + rspamd_cryptobox_fast_hash_init (&st, rspamd_hash_seed ()); + + if (url->hostlen > 0) { + rspamd_cryptobox_fast_hash_update (&st, url->host, url->hostlen); + } + + if (url->userlen > 0) { + rspamd_cryptobox_fast_hash_update (&st, url->user, url->userlen); + } return rspamd_cryptobox_fast_hash_final (&st); } @@ -2621,17 +2638,13 @@ gboolean rspamd_urls_cmp (gconstpointer a, gconstpointer b) { const struct rspamd_url *u1 = a, *u2 = b; - int r; + int r = 0; if (u1->urllen != u2->urllen) { return FALSE; } else { r = memcmp (u1->string, u2->string, u1->urllen); - if (r == 0 && u1->flags != u2->flags) { - /* Always insert phished urls to the tree */ - return FALSE; - } } return r == 0; |