diff --git a/src/lib-index/mail-index-private.h b/src/lib-index/mail-index-private.h index b1a94a82c5..4350b1cfe5 100644 --- a/src/lib-index/mail-index-private.h +++ b/src/lib-index/mail-index-private.h @@ -338,8 +338,12 @@ void mail_index_view_transaction_unref(struct mail_index_view *view); void mail_index_fsck_locked(struct mail_index *index); +/* Log an error and set it as the index's current error that is available + with mail_index_get_error_message(). */ void mail_index_set_error(struct mail_index *index, const char *fmt, ...) ATTR_FORMAT(2, 3); +/* Same as mail_index_set_error(), but don't log the error. */ +void mail_index_set_error_nolog(struct mail_index *index, const char *str); /* "%s failed with index file %s: %m" */ void mail_index_set_syscall_error(struct mail_index *index, const char *function); diff --git a/src/lib-index/mail-index.c b/src/lib-index/mail-index.c index 0c275e3b22..5f9e02a1c7 100644 --- a/src/lib-index/mail-index.c +++ b/src/lib-index/mail-index.c @@ -915,6 +915,15 @@ void mail_index_set_error(struct mail_index *index, const char *fmt, ...) } } +void mail_index_set_error_nolog(struct mail_index *index, const char *str) +{ + i_assert(str != NULL); + + char *old_error = index->error; + index->error = i_strdup(str); + i_free(old_error); +} + bool mail_index_is_in_memory(struct mail_index *index) { return MAIL_INDEX_IS_IN_MEMORY(index);