summaryrefslogtreecommitdiffstats
path: root/src/libserver/task.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2019-04-02 19:38:32 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2019-04-02 19:38:32 +0100
commit038039fc3599792d01863eae66d6ebc7f12cc7dc (patch)
treeb7bdb9bda82a1d3a4427793db792c9453d14e90c /src/libserver/task.c
parentdbcbd3a54169e547d41ff1590a7769512c5171a6 (diff)
downloadrspamd-038039fc3599792d01863eae66d6ebc7f12cc7dc.tar.gz
rspamd-038039fc3599792d01863eae66d6ebc7f12cc7dc.zip
[Rework] Continue aliases changes
Diffstat (limited to 'src/libserver/task.c')
-rw-r--r--src/libserver/task.c23
1 files changed, 20 insertions, 3 deletions
diff --git a/src/libserver/task.c b/src/libserver/task.c
index dcad1a1ab..d0ef40621 100644
--- a/src/libserver/task.c
+++ b/src/libserver/task.c
@@ -1231,22 +1231,39 @@ rspamd_task_write_ialist (struct rspamd_task *task,
rspamd_fstring_t *res = logbuf, *varbuf;
rspamd_ftok_t var = {.begin = NULL, .len = 0};
struct rspamd_email_address *addr;
- gint i, nchars = 0, cur_chars;
+ gint i, nchars = 0, wr = 0, cur_chars;
+ gboolean has_orig = FALSE;
if (addrs && lim <= 0) {
lim = addrs->len;
}
+ PTR_ARRAY_FOREACH (addrs, i, addr) {
+ if (addr->flags & RSPAMD_EMAIL_ADDR_ORIGINAL) {
+ has_orig = TRUE;
+ break;
+ }
+ }
+
varbuf = rspamd_fstring_new ();
PTR_ARRAY_FOREACH (addrs, i, addr) {
- if (i >= lim) {
+ if (wr >= lim) {
break;
}
+
+ if (has_orig) {
+ /* Report merely original addresses */
+ if (!(addr->flags & RSPAMD_EMAIL_ADDR_ORIGINAL)) {
+ continue;
+ }
+ }
+
cur_chars = addr->addr_len;
varbuf = rspamd_fstring_append (varbuf, addr->addr,
cur_chars);
nchars += cur_chars;
+ wr ++;
if (varbuf->len > 0) {
if (i != lim - 1) {
@@ -1254,7 +1271,7 @@ rspamd_task_write_ialist (struct rspamd_task *task,
}
}
- if (i >= max_log_elts || nchars >= max_log_elts * 10) {
+ if (wr >= max_log_elts || nchars >= max_log_elts * 10) {
varbuf = rspamd_fstring_append (varbuf, "...", 3);
break;
}