aboutsummaryrefslogtreecommitdiffstats
path: root/src/libserver/url.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2017-02-13 15:57:10 +0000
committerVsevolod Stakhov <vsevolod@highsecure.ru>2017-02-13 15:57:10 +0000
commit413f74a3577cfe252ed6082f19662d94ffa43549 (patch)
treec372e37485d1e7a03c86061cd792ae899128d8db /src/libserver/url.c
parentce060358955a96d65196a9ee431be8d9db87d46e (diff)
downloadrspamd-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.c25
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;