diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-01-03 11:19:42 +0000 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2016-01-03 11:19:42 +0000 |
commit | 49d6edee1079c2f4938d0cf724c051fecabb5541 (patch) | |
tree | 17933dcf50b686e7d19698b6ed64bd3d437ec6c2 /src | |
parent | 4c95ae48b50265c14659630011785cba89a40f19 (diff) | |
parent | 4d5448c0dd1f169d277bf2c62719134fc403d070 (diff) | |
download | rspamd-49d6edee1079c2f4938d0cf724c051fecabb5541.tar.gz rspamd-49d6edee1079c2f4938d0cf724c051fecabb5541.zip |
Merge pull request #469 from fatalbanana/spf
Unconditionally disable SPF for authenticated users
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/spf.c | 40 |
1 files changed, 23 insertions, 17 deletions
diff --git a/src/plugins/spf.c b/src/plugins/spf.c index 362ab6c53..f672bf80d 100644 --- a/src/plugins/spf.c +++ b/src/plugins/spf.c @@ -353,25 +353,31 @@ spf_symbol_callback (struct rspamd_task *task, void *unused) struct spf_resolved *l; if (radix_find_compressed_addr (spf_module_ctx->whitelist_ip, - task->from_addr) == RADIX_NO_VALUE) { - domain = get_spf_domain (task); - if (domain) { - if ((l = - rspamd_lru_hash_lookup (spf_module_ctx->spf_hash, domain, - task->tv.tv_sec)) != NULL) { - spf_record_ref (l); - spf_check_list (l, task); - spf_record_unref (l); + task->from_addr) != RADIX_NO_VALUE) { + return; + } + + if (task->user != NULL) { + return; + } + + domain = get_spf_domain (task); + if (domain) { + if ((l = + rspamd_lru_hash_lookup (spf_module_ctx->spf_hash, domain, + task->tv.tv_sec)) != NULL) { + spf_record_ref (l); + spf_check_list (l, task); + spf_record_unref (l); + } + else { + if (!resolve_spf (task, spf_plugin_callback)) { + msg_info_task ("cannot make spf request for [%s]", + task->message_id); } else { - if (!resolve_spf (task, spf_plugin_callback)) { - msg_info_task ("cannot make spf request for [%s]", - task->message_id); - } - else { - rspamd_session_add_event (task->s, spf_plugin_fin, NULL, - spf_plugin_quark ()); - } + rspamd_session_add_event (task->s, spf_plugin_fin, NULL, + spf_plugin_quark ()); } } } |