"spf", rec->task->task_pool->tag.uid, \
RSPAMD_LOG_FUNC, \
__VA_ARGS__)
+#define msg_notice_spf(...) rspamd_default_log_function (G_LOG_LEVEL_MESSAGE, \
+ "spf", rec->task->task_pool->tag.uid, \
+ RSPAMD_LOG_FUNC, \
+ __VA_ARGS__)
#define msg_debug_spf(...) rspamd_conditional_debug_fast (NULL, rec->task->from_addr, \
rspamd_spf_log_id, "spf", rec->task->task_pool->tag.uid, \
RSPAMD_LOG_FUNC, \
g_assert (cur != NULL);
if (!(cur->flags & (RSPAMD_SPF_FLAG_PARSED|RSPAMD_SPF_FLAG_RESOLVED))) {
/* Unresolved redirect */
- msg_info_spf ("redirect to %s cannot be resolved", cur->spf_string);
+ msg_info_spf ("redirect to %s cannot be resolved for domain %s", cur->spf_string, rec->sender_domain);
}
else {
g_assert (cur->flags & RSPAMD_SPF_FLAG_REFERENCE);
}
else {
msg_err_spf (
- "internal error, bad DNS reply is treated as address: %s",
- rdns_strtype (reply->type));
+ "internal error, bad DNS reply is treated as address: %s; domain: %s",
+ rdns_strtype (reply->type),
+ rec->sender_domain);
}
addr->flags |= RSPAMD_SPF_FLAG_PROCESSED;
}
else {
msg_err_spf (
- "internal error, bad DNS reply is treated as address: %s",
- rdns_strtype (reply->type));
+ "internal error, bad DNS reply is treated as address: %s; domain: %s",
+ rdns_strtype (reply->type),
+ rec->sender_domain);
}
DL_APPEND (addr, naddr);
truncated = true;
if (req_name) {
- msg_warn_spf ("got a truncated record when trying to resolve %s (%s type) for SPF domain %s",
+ msg_notice_spf ("got a truncated record when trying to resolve %s (%s type) for SPF domain %s",
req_name->name, rdns_str_from_type(req_name->type),
rec->sender_domain);
}
else {
- msg_warn_spf ("got a truncated record when trying to resolve ??? "
+ msg_notice_spf ("got a truncated record when trying to resolve ??? "
"(internal error) for SPF domain %s",
rec->sender_domain);
}
addr->m.dual.mask_v4 = cur_mask;
}
else {
- msg_info_spf ("bad ipv4 mask for %s: %d",
+ msg_notice_spf ("bad ipv4 mask for %s: %d",
rec->sender_domain, cur_mask);
}
state = parse_second_slash;
addr->m.dual.mask_v4 = cur_mask;
}
else {
- msg_info_spf ("bad ipv4 mask for %s: %d", rec->sender_domain, cur_mask);
+ msg_notice_spf ("bad ipv4 mask for %s: %d", rec->sender_domain, cur_mask);
}
}
else if (state == parse_ipv6_mask) {
addr->m.dual.mask_v6 = cur_mask;
}
else {
- msg_info_spf ("bad ipv6 mask: %d", cur_mask);
+ msg_notice_spf ("bad ipv6 mask: %d", cur_mask);
}
}
else if (state == parse_domain && p - c > 0) {
return TRUE;
}
else {
- msg_info_spf ("unresolvable A element for %s: %s", addr->spf_string,
+ msg_notice_spf ("unresolvable A element for %s: %s", addr->spf_string,
rec->sender_domain);
}
return TRUE;
}
else {
- msg_info_spf ("unresolvable PTR element for %s: %s", addr->spf_string,
+ msg_notice_spf ("unresolvable PTR element for %s: %s", addr->spf_string,
rec->sender_domain);
}
/* Disallow +all */
if (addr->mech == SPF_PASS) {
addr->flags |= RSPAMD_SPF_FLAG_INVALID;
- msg_info_spf ("allow any SPF record for %s, ignore it",
+ msg_notice_spf ("domain %s allows any SPF (+all), ignore SPF record completely",
rec->sender_domain);
}
semicolon = strchr (addr->spf_string, '=');
if (semicolon == NULL) {
- msg_info_spf ("invalid ip4 element for %s: %s", addr->spf_string,
+ msg_notice_spf ("invalid ip4 element for %s: %s, no '=' or ':'", addr->spf_string,
rec->sender_domain);
return FALSE;
}
rspamd_strlcpy (ipbuf, semicolon, MIN (len + 1, sizeof (ipbuf)));
if (inet_pton (AF_INET, ipbuf, addr->addr4) != 1) {
- msg_info_spf ("invalid ip4 element for %s: %s", addr->spf_string,
+ msg_notice_spf ("invalid ip4 element for %s: %s", addr->spf_string,
rec->sender_domain);
return FALSE;
}
mask = strtoul (slash + 1, &end, 10);
if (mask > 32) {
- msg_info_spf ("invalid mask for ip4 element for %s: %s", addr->spf_string,
+ msg_notice_spf ("invalid mask for ip4 element for %s: %s", addr->spf_string,
rec->sender_domain);
return FALSE;
}
if (end != NULL && !g_ascii_isspace(*end) && *end != '\0') {
/* Invalid mask definition */
- msg_info_spf ("invalid mask for ip4 element for %s: %s", addr->spf_string,
+ msg_notice_spf ("invalid mask for ip4 element for %s: %s", addr->spf_string,
rec->sender_domain);
return FALSE;
}
if (mask < min_valid_mask) {
addr->flags |= RSPAMD_SPF_FLAG_INVALID;
- msg_info_spf ("too wide SPF record for %s: %s/%d",
+ msg_notice_spf ("too wide SPF record for %s: %s/%d",
rec->sender_domain,
ipbuf, addr->m.dual.mask_v4);
}
semicolon = strchr (addr->spf_string, '=');
if (semicolon == NULL) {
- msg_info_spf ("invalid ip6 element for %s: %s", addr->spf_string,
+ msg_notice_spf ("invalid ip6 element for %s: %s", addr->spf_string,
rec->sender_domain);
return FALSE;
}
rspamd_strlcpy (ipbuf, semicolon, MIN (len + 1, sizeof (ipbuf)));
if (inet_pton (AF_INET6, ipbuf, addr->addr6) != 1) {
- msg_info_spf ("invalid ip6 element for %s: %s", addr->spf_string,
+ msg_notice_spf ("invalid ip6 element for %s: %s", addr->spf_string,
rec->sender_domain);
return FALSE;
}
gchar *end = NULL;
mask = strtoul (slash + 1, &end, 10);
if (mask > 128) {
- msg_info_spf ("invalid mask for ip6 element for %s: %s", addr->spf_string,
+ msg_notice_spf ("invalid mask for ip6 element for %s: %s", addr->spf_string,
rec->sender_domain);
return FALSE;
}
if (end != NULL && !g_ascii_isspace(*end) && *end != '\0') {
/* Invalid mask definition */
- msg_info_spf ("invalid mask for ip4 element for %s: %s", addr->spf_string,
+ msg_notice_spf ("invalid mask for ip4 element for %s: %s", addr->spf_string,
rec->sender_domain);
return FALSE;
}
if (mask < min_valid_mask) {
addr->flags |= RSPAMD_SPF_FLAG_INVALID;
- msg_info_spf ("too wide SPF record for %s: %s/%d",
+ msg_notice_spf ("too wide SPF record for %s: %s/%d",
rec->sender_domain,
ipbuf, addr->m.dual.mask_v6);
}
domain = strchr (addr->spf_string, '=');
if (domain == NULL) {
- msg_info_spf ("invalid include element for %s: %s", addr->spf_string,
+ msg_notice_spf ("invalid include element for %s: %s", addr->spf_string,
rec->sender_domain);
return FALSE;
}
return TRUE;
}
else {
- msg_info_spf ("unresolvable include element for %s: %s", addr->spf_string,
+ msg_notice_spf ("unresolvable include element for %s: %s", addr->spf_string,
rec->sender_domain);
}
domain = strchr (addr->spf_string, ':');
if (domain == NULL) {
- msg_info_spf ("invalid redirect element for %s: %s", addr->spf_string,
+ msg_notice_spf ("invalid redirect element for %s: %s", addr->spf_string,
rec->sender_domain);
return FALSE;
}
return TRUE;
}
else {
- msg_info_spf ("unresolvable redirect element for %s: %s", addr->spf_string,
+ msg_notice_spf ("unresolvable redirect element for %s: %s", addr->spf_string,
rec->sender_domain);
}
host = strchr (addr->spf_string, '=');
if (host == NULL) {
- msg_info_spf ("invalid exists element for %s: %s", addr->spf_string,
+ msg_notice_spf ("invalid exists element for %s: %s", addr->spf_string,
rec->sender_domain);
return FALSE;
}
return TRUE;
}
else {
- msg_info_spf ("unresolvable exists element for %s: %s", addr->spf_string,
+ msg_notice_spf ("unresolvable exists element for %s: %s", addr->spf_string,
rec->sender_domain);
}
}
else {
/* Something unknown */
- msg_info_spf (
+ msg_notice_spf (
"spf error for domain %s: unknown spf element",
rec->sender_domain);
return begin;
}
break;
default:
- msg_info_spf (
+ msg_notice_spf (
"spf error for domain %s: unknown or "
"unsupported spf macro %c in %s",
rec->sender_domain,
res = parse_spf_a (rec, resolved, addr);
}
else {
- msg_info_spf ("spf error for domain %s: bad spf command %s",
+ msg_notice_spf ("spf error for domain %s: bad spf command %s",
rec->sender_domain, begin);
}
break;
res = parse_spf_ip6 (rec, addr);
}
else {
- msg_info_spf ("spf error for domain %s: bad spf command %s",
+ msg_notice_spf ("spf error for domain %s: bad spf command %s",
rec->sender_domain, begin);
}
break;
res = parse_spf_mx (rec, resolved, addr);
}
else {
- msg_info_spf ("spf error for domain %s: bad spf command %s",
+ msg_notice_spf ("spf error for domain %s: bad spf command %s",
rec->sender_domain, begin);
}
break;
res = parse_spf_ptr (rec, resolved, addr);
}
else {
- msg_info_spf ("spf error for domain %s: bad spf command %s",
+ msg_notice_spf ("spf error for domain %s: bad spf command %s",
rec->sender_domain, begin);
}
break;
res = parse_spf_exists (rec, addr);
}
else {
- msg_info_spf ("spf error for domain %s: bad spf command %s",
+ msg_notice_spf ("spf error for domain %s: bad spf command %s",
rec->sender_domain, begin);
}
break;
res = parse_spf_redirect (rec, resolved, addr);
}
else {
- msg_info_spf ("ignore SPF redirect (%s) for domain %s as there is also all element",
+ msg_notice_spf ("ignore SPF redirect (%s) for domain %s as there is also all element",
begin, rec->sender_domain);
/* Pop the current addr as it is ignored */
}
}
else {
- msg_info_spf ("spf error for domain %s: bad spf command %s",
+ msg_notice_spf ("spf error for domain %s: bad spf command %s",
rec->sender_domain, begin);
}
break;
}
break;
default:
- msg_info_spf ("spf error for domain %s: bad spf command %s",
+ msg_notice_spf ("spf error for domain %s: bad spf command %s",
rec->sender_domain, begin);
break;
}
/* Skip one number of record, so no we are here spf2.0/ */
begin += sizeof (SPF_VER2_STR);
if (*begin != '/') {
- msg_info_spf ("spf error for domain %s: sender id is invalid",
+ msg_notice_spf ("spf error for domain %s: sender id is invalid",
rec->sender_domain);
}
else {