diff options
author | Jeremy Harris <jgh146exb@wizmail.org> | 2018-04-25 21:02:39 +0100 |
---|---|---|
committer | Jeremy Harris <jgh146exb@wizmail.org> | 2018-04-25 21:02:39 +0100 |
commit | 08bd2689bdeceb41f161a7d54fc1af4abcbbb8c1 (patch) | |
tree | db818aed944b4023f0ba6a9346fd871a8c9a420a /src | |
parent | 9cffa4367b034b97a01fb3a0cf8095d8f56fa56a (diff) |
ARC: support $arc_domains also for verify fails
Diffstat (limited to 'src')
-rw-r--r-- | src/src/arc.c | 22 |
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""; } |