# HG changeset patch # User Carl Byington # Date 1488854349 28800 # Node ID dffedbdc856632e9ee85e8b91cd8cbcd2f973721 # Parent ea458101de9bab40f4b88a64fae4f5fc1e2318b3 start parsing spf txt records diff -r ea458101de9b -r dffedbdc8566 src/context.cpp --- a/src/context.cpp Mon Mar 06 18:06:24 2017 -0800 +++ b/src/context.cpp Mon Mar 06 18:39:09 2017 -0800 @@ -1147,8 +1147,8 @@ uint32_t low = (1 << (32-mask)) - 1; ipy &= low ^ 0xffffffff; if ((ipy <= ip) && (ip <= ipy + low)) { + if (s) *s = '/'; log(priv->queueid, "match %s", p); - if (s) log(priv->queueid, "match /%s", s+1); return true; } } @@ -1185,12 +1185,6 @@ if (dk) { const char *st = dk->action; - if ((st == token_require_signed) && - dk->signer && - strcmp(dk->signer, " ") && - resolve_spf(from, priv->ip, priv)) { - log(queueid, "spf pass for %s with required dkim signer", from); - } for (string_set::iterator s=signers.begin(); s!=signers.end(); s++) { // signed by a white listed signer if ((st == token_signed_white) && in_signing_set(*s,dk->signer)) { @@ -1213,7 +1207,7 @@ if (st == token_require_signed) { // not signed by a required signer, but maybe passes strong spf check // only check spf if the list of required signers is not a single blank. - if (dk->signer && strcmp(dk->signer, " ") && resolve_spf(from, priv->ip, priv)) { + if (strcmp(dk->signer, " ") && resolve_spf(from, priv->ip, priv)) { log(queueid, "spf pass for %s rather than required dkim signer", from); return token_white; } diff -r ea458101de9b -r dffedbdc8566 src/dnsbl.cpp --- a/src/dnsbl.cpp Mon Mar 06 18:06:24 2017 -0800 +++ b/src/dnsbl.cpp Mon Mar 06 18:39:09 2017 -0800 @@ -2251,8 +2251,10 @@ res_init(); _res.retry = 2; _res.retrans = RES_TIMEOUT; +#ifdef RES_USE_EDNS0 _res.options |= RES_USE_EDNS0; #endif +#endif process_resolver_requests(s); exit(0); }