Browse Source

Use any valid SPF record.

tags/0.7.0
Vsevolod Stakhov 10 years ago
parent
commit
c307e314da
2 changed files with 9 additions and 4 deletions
  1. 1
    1
      interface
  2. 8
    3
      src/libserver/spf.c

+ 1
- 1
interface

@@ -1 +1 @@
Subproject commit dc74a0a935175748808f86a8f2e0a183f1788521
Subproject commit 6828f4735bb998f20b00e1b8d144aec5c102d947

+ 8
- 3
src/libserver/spf.c View File

@@ -91,7 +91,7 @@ do { \
} while (0) \

static gboolean parse_spf_record (struct rspamd_task *task, struct spf_record *rec);
static void start_spf_parse (struct spf_record *rec, gchar *begin, guint ttl);
static gboolean start_spf_parse (struct spf_record *rec, gchar *begin, guint ttl);

/* Determine spf mech */
static spf_mech_t
@@ -1345,7 +1345,7 @@ parse_spf_scopes (struct spf_record *rec, gchar **begin)
}
}

static void
static gboolean
start_spf_parse (struct spf_record *rec, gchar *begin, guint ttl)
{
/* Skip spaces */
@@ -1367,6 +1367,7 @@ start_spf_parse (struct spf_record *rec, gchar *begin, guint ttl)
if (ttl != 0) {
rec->ttl = ttl;
}
return TRUE;
}
}
else if (g_ascii_strncasecmp (begin, SPF_VER2_STR, sizeof (SPF_VER2_STR) - 1) == 0) {
@@ -1394,11 +1395,13 @@ start_spf_parse (struct spf_record *rec, gchar *begin, guint ttl)
rec->ttl = ttl;
}
}
return TRUE;
}
else {
msg_debug ("<%s>: spf error for domain %s: bad spf record version: %*s",
rec->task->message_id, rec->sender_domain, sizeof (SPF_VER1_STR) - 1, begin);
}
return FALSE;
}

static void
@@ -1410,7 +1413,9 @@ spf_dns_callback (struct rdns_reply *reply, gpointer arg)
rec->requests_inflight --;
if (reply->code == RDNS_RC_NOERROR) {
LL_FOREACH (reply->entries, elt) {
start_spf_parse (rec, elt->content.txt.data, elt->ttl);
if (start_spf_parse (rec, elt->content.txt.data, elt->ttl)) {
break;
}
}
}


Loading…
Cancel
Save