Skip to content

Commit

Permalink
lib-storage: Add mailbox_transaction_set_reason()
Browse files Browse the repository at this point in the history
  • Loading branch information
sirainen committed Apr 3, 2017
1 parent 1365792 commit d28d40b
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 0 deletions.
1 change: 1 addition & 0 deletions src/lib-storage/index/index-transaction.c
Expand Up @@ -17,6 +17,7 @@ static void index_transaction_free(struct mailbox_transaction_context *t)
if (array_is_created(&t->pvt_saves))
array_free(&t->pvt_saves);
array_free(&t->module_contexts);
i_free(t->reason);
i_free(t);
}

Expand Down
1 change: 1 addition & 0 deletions src/lib-storage/mail-storage-private.h
Expand Up @@ -565,6 +565,7 @@ struct mail_save_private_changes {
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;
Expand Down
9 changes: 9 additions & 0 deletions src/lib-storage/mail-storage.c
Expand Up @@ -2057,6 +2057,15 @@ void mailbox_transaction_rollback(struct mailbox_transaction_context **_t)
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;
Expand Down
4 changes: 4 additions & 0 deletions src/lib-storage/mail-storage.h
Expand Up @@ -648,6 +648,10 @@ int mailbox_transaction_commit_get_changes(
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
Expand Down

0 comments on commit d28d40b

Please sign in to comment.