{ "address_file", vtype_stringptr, &address_file },
{ "address_pipe", vtype_stringptr, &address_pipe },
#ifdef EXPERIMENTAL_ARC
+ { "arc_domains", vtype_string_func, &fn_arc_domains },
+ { "arc_oldest_pass", vtype_int, &arc_oldest_pass },
{ "arc_state", vtype_stringptr, &arc_state },
{ "arc_state_reason", vtype_stringptr, &arc_state_reason },
#endif
-/* Append a "local" element to an Autherntication-Results: header
+/* Append a "local" element to an Authentication-Results: header
if this was a non-smtp message.
*/
}
-/* Append an "iprev" element to an Autherntication-Results: header
+/* Append an "iprev" element to an Authentication-Results: header
if we have attempted to get the calling host's name.
*/
authres_iprev(gstring * g)
{
if (sender_host_name)
- return string_append(g, 3, US";\n\tiprev=pass (", sender_host_name, US")");
+ return string_append(g, sender_host_address ? 5 : 3,
+ US";\n\tiprev=pass (", sender_host_name, US")",
+ US" smtp.client-ip=", sender_host_address);
if (host_lookup_deferred)
return string_catn(g, US";\n\tiprev=temperror", 19);
if (host_lookup_failed)
case vtype_reply: /* Get reply address */
s = find_header(US"reply-to:", exists_only, newsize, TRUE,
headers_charset);
- if (s != NULL) while (isspace(*s)) s++;
- if (s == NULL || *s == 0)
+ if (s) while (isspace(*s)) s++;
+ if (!s || !*s)
{
*newsize = 0; /* For the *s==0 case */
s = find_header(US"from:", exists_only, newsize, TRUE, headers_charset);
}
- if (s != NULL)
+ if (s)
{
uschar *t;
while (isspace(*s)) s++;
while (t > s && isspace(t[-1])) t--;
*t = 0;
}
- return (s == NULL)? US"" : s;
+ return s ? s : US"";
case vtype_string_func:
{