aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2015-06-17 14:33:54 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2015-06-17 14:34:27 +0100
commite94ceb0fddb882282f849cf880888dc4e3257475 (patch)
tree6c7076a50dd6abae80ca7b4d4e719ed8360412b9
parent5f6738783f543bc8bb86bbb0ffb08304174af747 (diff)
downloadrspamd-e94ceb0fddb882282f849cf880888dc4e3257475.tar.gz
rspamd-e94ceb0fddb882282f849cf880888dc4e3257475.zip
Fix selecting URLs for sending to redirector.
-rw-r--r--src/plugins/surbl.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/plugins/surbl.c b/src/plugins/surbl.c
index 39dfc2894..428e2902e 100644
--- a/src/plugins/surbl.c
+++ b/src/plugins/surbl.c
@@ -1069,6 +1069,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));
@@ -1089,8 +1090,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,