Mercurial > dovecot > core-2.2
changeset 21879:313601eae9a8
lib-storage: Add mailbox_transaction_set_reason()
author | Timo Sirainen <timo.sirainen@dovecot.fi> |
---|---|
date | Sat, 01 Apr 2017 21:54:30 +0300 |
parents | e78a42ead488 |
children | 8bb7ebb65d0f |
files | src/lib-storage/index/index-transaction.c src/lib-storage/mail-storage-private.h src/lib-storage/mail-storage.c src/lib-storage/mail-storage.h |
diffstat | 4 files changed, 15 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/index-transaction.c Sat Apr 01 21:43:16 2017 +0300 +++ b/src/lib-storage/index/index-transaction.c Sat Apr 01 21:54:30 2017 +0300 @@ -17,6 +17,7 @@ if (array_is_created(&t->pvt_saves)) array_free(&t->pvt_saves); array_free(&t->module_contexts); + i_free(t->reason); i_free(t); }
--- a/src/lib-storage/mail-storage-private.h Sat Apr 01 21:43:16 2017 +0300 +++ b/src/lib-storage/mail-storage-private.h Sat Apr 01 21:54:30 2017 +0300 @@ -565,6 +565,7 @@ struct mailbox_transaction_context { struct mailbox *box; enum mailbox_transaction_flags flags; + char *reason; union mail_index_transaction_module_context module_ctx; struct mail_index_transaction_vfuncs super;
--- a/src/lib-storage/mail-storage.c Sat Apr 01 21:43:16 2017 +0300 +++ b/src/lib-storage/mail-storage.c Sat Apr 01 21:54:30 2017 +0300 @@ -2057,6 +2057,15 @@ box->transaction_count--; } +void mailbox_transaction_set_reason(struct mailbox_transaction_context *t, + const char *reason) +{ + i_assert(reason != NULL); + + i_free(t->reason); + t->reason = i_strdup(reason); +} + unsigned int mailbox_transaction_get_count(const struct mailbox *box) { return box->transaction_count;
--- a/src/lib-storage/mail-storage.h Sat Apr 01 21:43:16 2017 +0300 +++ b/src/lib-storage/mail-storage.h Sat Apr 01 21:54:30 2017 +0300 @@ -648,6 +648,10 @@ struct mailbox_transaction_context **t, struct mail_transaction_commit_changes *changes_r); void mailbox_transaction_rollback(struct mailbox_transaction_context **t); +/* Set a reason for why the transaction is created. This is used for + logging purposes. */ +void mailbox_transaction_set_reason(struct mailbox_transaction_context *t, + const char *reason); /* Return the number of active transactions for the mailbox. */ unsigned int mailbox_transaction_get_count(const struct mailbox *box) ATTR_PURE; /* When committing transaction, drop flag/keyword updates for messages whose