Skip to content

Commit

Permalink
lib-storage: Add mailbox_set_reason()
Browse files Browse the repository at this point in the history
Use it to log a debug message when mailbox is being opened.
  • Loading branch information
sirainen committed Apr 3, 2017
1 parent 92dab92 commit 4b41218
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 0 deletions.
2 changes: 2 additions & 0 deletions src/lib-storage/mail-storage-private.h
Expand Up @@ -347,6 +347,8 @@ struct mailbox {
/* Filled lazily when mailbox is opened, use mailbox_get_index_path()
to access it */
const char *_index_path;
/* Reason for why mailbox is being accessed or NULL if unknown. */
const char *reason;

/* default vfuncs for new struct mails. */
const struct mail_vfuncs *mail_vfuncs;
Expand Down
13 changes: 13 additions & 0 deletions src/lib-storage/mail-storage.c
Expand Up @@ -819,6 +819,13 @@ struct mailbox *mailbox_alloc_guid(struct mailbox_list *list,
return box;
}

void mailbox_set_reason(struct mailbox *box, const char *reason)
{
i_assert(reason != NULL);

box->reason = p_strdup(box->pool, reason);
}

static bool mailbox_is_autocreated(struct mailbox *box)
{
if (box->inbox_user)
Expand Down Expand Up @@ -1125,6 +1132,12 @@ mailbox_open_full(struct mailbox *box, struct istream *input)

if (box->opened)
return 0;

if (box->storage->set->mail_debug && box->reason != NULL) {
i_debug("%s: Mailbox opened because: %s",
box->vname, box->reason);
}

switch (box->open_error) {
case 0:
break;
Expand Down
3 changes: 3 additions & 0 deletions src/lib-storage/mail-storage.h
Expand Up @@ -506,6 +506,9 @@ struct mailbox *mailbox_alloc(struct mailbox_list *list, const char *vname,
struct mailbox *mailbox_alloc_guid(struct mailbox_list *list,
const guid_128_t guid,
enum mailbox_flags flags);
/* Set a human-readable reason for why this mailbox is being accessed.
This is used for logging purposes. */
void mailbox_set_reason(struct mailbox *box, const char *reason);
/* Get mailbox existence state. If auto_boxes=FALSE, return
MAILBOX_EXISTENCE_NONE for autocreated mailboxes that haven't been
physically created yet */
Expand Down

0 comments on commit 4b41218

Please sign in to comment.