|
|
@@ -1092,6 +1092,7 @@ surbl_tree_url_callback (gpointer key, gpointer value, void *data) |
|
|
|
rspamd_regexp_t *re; |
|
|
|
gint idx = 0, state = 0; |
|
|
|
ac_trie_pat_t *pat; |
|
|
|
gboolean found = FALSE; |
|
|
|
|
|
|
|
task = param->task; |
|
|
|
debug_task ("check url %s", struri (url)); |
|
|
@@ -1112,8 +1113,19 @@ surbl_tree_url_callback (gpointer key, gpointer value, void *data) |
|
|
|
re = g_hash_table_lookup ( |
|
|
|
surbl_module_ctx->redirector_hosts, |
|
|
|
pat->ptr); |
|
|
|
if (re == NULL || rspamd_regexp_search (re, url->string, 0, |
|
|
|
if (re == NULL) { |
|
|
|
/* Perform exact match */ |
|
|
|
if (pat->len == url->hostlen && memcmp (pat->ptr, |
|
|
|
url->host, pat->len) == 0) { |
|
|
|
found = TRUE; |
|
|
|
} |
|
|
|
} |
|
|
|
else if (rspamd_regexp_search (re, url->string, 0, |
|
|
|
NULL, NULL, TRUE)) { |
|
|
|
found = TRUE; |
|
|
|
} |
|
|
|
|
|
|
|
if (found) { |
|
|
|
if (surbl_module_ctx->redirector_symbol != NULL) { |
|
|
|
rspamd_task_insert_result (param->task, |
|
|
|
surbl_module_ctx->redirector_symbol, |