]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap-client: Add %{autoexpunged} to imap_logout_format
authorMartti Rannanjärvi <martti.rannanjarvi@dovecot.fi>
Mon, 3 Jul 2017 14:12:08 +0000 (17:12 +0300)
committerAki Tuomi <aki.tuomi@dovecot.fi>
Thu, 20 Jul 2017 10:04:21 +0000 (13:04 +0300)
doc/example-config/conf.d/20-imap.conf
src/imap/imap-client.c
src/imap/imap-client.h

index 2a59cd0be3b509b2404cbbd9c6ca7427dd6eac69..bc51ac300d0233d50af35b7a345f6250f25d7693 100644 (file)
 #  %{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
index 566c57d0ed5d0761ceeb6aca813db6c1990ead07..9b28a6a95223a4146c54afc9b6d951d2c3c60d01 100644 (file)
@@ -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);
index 935f2423c6aa4e8947d56821cb35c6a812476765..a385934bd284ce8c37787bec57c444cc456c9d1e 100644 (file)
@@ -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;