aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/spf.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2014-05-04 15:36:14 -0700
committerVsevolod Stakhov <vsevolod@highsecure.ru>2014-05-04 15:36:14 -0700
commitf13d8f591fb7ca3dfa05dd006c8fcba5bb190efd (patch)
treec0629289d822f3e39487c9c7aef682b60d99a3ab /src/plugins/spf.c
parentc307e314da4d8bed837eef9975e1d4fbe27a856a (diff)
downloadrspamd-f13d8f591fb7ca3dfa05dd006c8fcba5bb190efd.tar.gz
rspamd-f13d8f591fb7ca3dfa05dd006c8fcba5bb190efd.zip
Fix addresses comparision on SPF module.
Diffstat (limited to 'src/plugins/spf.c')
-rw-r--r--src/plugins/spf.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/plugins/spf.c b/src/plugins/spf.c
index f3616f44f..8b9e64754 100644
--- a/src/plugins/spf.c
+++ b/src/plugins/spf.c
@@ -168,7 +168,8 @@ spf_check_element (struct spf_addr *addr, struct rspamd_task *task)
struct in6_addr in6s, in6d;
/* Basic comparing algorithm */
- if (addr->data.normal.ipv6 && task->from_addr.af == AF_INET6) {
+ if ((addr->data.normal.ipv6 && task->from_addr.af == AF_INET6) ||
+ (!addr->data.normal.ipv6 && task->from_addr.af == AF_INET)) {
if (addr->data.normal.ipv6) {
addrlen = sizeof (struct in6_addr);
memcpy (&in6s, &addr->data.normal.d.in6, sizeof (struct in6_addr));