summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2018-04-25 21:02:39 +0100
committerJeremy Harris <jgh146exb@wizmail.org>2018-04-25 21:02:39 +0100
commit08bd2689bdeceb41f161a7d54fc1af4abcbbb8c1 (patch)
treedb818aed944b4023f0ba6a9346fd871a8c9a420a /src
parent9cffa4367b034b97a01fb3a0cf8095d8f56fa56a (diff)
ARC: support $arc_domains also for verify fails
Diffstat (limited to 'src')
-rw-r--r--src/src/arc.c22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/src/arc.c b/src/src/arc.c
index 7ad00fc9f..9d8f7d5db 100644
--- a/src/src/arc.c
+++ b/src/src/arc.c
@@ -1780,15 +1780,25 @@ uschar *
fn_arc_domains(void)
{
arc_set * as;
+unsigned inst;
gstring * g = NULL;
-if (!arc_state || Ustrcmp(arc_state, "pass") != 0)
- return US"";
-
-for(as = arc_verify_ctx.arcset_chain; as; as = as->next)
+for (as = arc_verify_ctx.arcset_chain, inst = 1; as; as = as->next, inst++)
{
- blob * d = &as->hdr_as->d;
- g = string_append_listele_n(g, ':', d->data, d->len);
+ arc_line * hdr_as = as->hdr_as;
+ if (hdr_as)
+ {
+ blob * d = &hdr_as->d;
+
+ for (; inst < as->instance; inst++)
+ g = string_catn(g, ":", 1);
+
+ g = d->data && d->len
+ ? string_append_listele_n(g, ':', d->data, d->len)
+ : string_catn(g, ":", 1);
+ }
+ else
+ g = string_catn(g, ":", 1);
}
return g ? g->s : US"";
}