From: Martti Rannanjärvi Date: Mon, 3 Jul 2017 14:12:08 +0000 (+0300) Subject: imap-client: Add %{autoexpunged} to imap_logout_format X-Git-Tag: 2.2.32.rc1~56 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=73ec1eea845508a946eecc4a6414d122542da300;p=thirdparty%2Fdovecot%2Fcore.git imap-client: Add %{autoexpunged} to imap_logout_format --- diff --git a/doc/example-config/conf.d/20-imap.conf b/doc/example-config/conf.d/20-imap.conf index 2a59cd0be3..bc51ac300d 100644 --- a/doc/example-config/conf.d/20-imap.conf +++ b/doc/example-config/conf.d/20-imap.conf @@ -21,7 +21,10 @@ # %{fetch_body_count} - Number of mails with mail body data sent to client # %{fetch_body_bytes} - Number of bytes with mail body data sent to client # %{deleted} - Number of mails where client added \Deleted flag -# %{expunged} - Number of mails that client expunged +# %{expunged} - Number of mails that client expunged, which does not +# include automatically expunged mails +# %{autoexpunged} - Number of mails that were automatically expunged after +# client disconnected # %{trashed} - Number of mails that client copied/moved to the # special_use=\Trash mailbox. #imap_logout_format = in=%i out=%o diff --git a/src/imap/imap-client.c b/src/imap/imap-client.c index 566c57d0ed..9b28a6a952 100644 --- a/src/imap/imap-client.c +++ b/src/imap/imap-client.c @@ -244,6 +244,7 @@ const char *client_stats(struct client *client) { '\0', NULL, "deleted" }, { '\0', NULL, "expunged" }, { '\0', NULL, "trashed" }, + { '\0', NULL, "autoexpunged" }, { '\0', NULL, NULL } }; struct var_expand_table *tab; @@ -262,6 +263,7 @@ const char *client_stats(struct client *client) tab[7].value = dec2str(client->deleted_count); tab[8].value = dec2str(client->expunged_count); tab[9].value = dec2str(client->trashed_count); + tab[10].value = dec2str(client->autoexpunged_count); str = t_str_new(128); var_expand(str, client->set->imap_logout_format, tab); @@ -459,7 +461,7 @@ static void client_default_destroy(struct client *client, const char *reason) hibernations it could also be doing unnecessarily much work. */ imap_refresh_proctitle(); if (!client->hibernated) { - mail_user_autoexpunge(client->user); + client->autoexpunged_count = mail_user_autoexpunge(client->user); client_log_disconnect(client, reason); } mail_user_unref(&client->user); diff --git a/src/imap/imap-client.h b/src/imap/imap-client.h index 935f2423c6..a385934bd2 100644 --- a/src/imap/imap-client.h +++ b/src/imap/imap-client.h @@ -188,6 +188,7 @@ struct client { unsigned int fetch_hdr_count, fetch_body_count; uint64_t fetch_hdr_bytes, fetch_body_bytes; unsigned int deleted_count, expunged_count, trashed_count; + unsigned int autoexpunged_count; /* SEARCHRES extension: Last saved SEARCH result */ ARRAY_TYPE(seq_range) search_saved_uidset;