]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-index: Replace mail_index_get_error_message() with mail_index_get_last_error()
authorMarco Bettini <marco.bettini@open-xchange.com>
Tue, 25 Jul 2023 13:46:47 +0000 (13:46 +0000)
committeraki.tuomi <aki.tuomi@open-xchange.com>
Fri, 6 Oct 2023 16:00:06 +0000 (16:00 +0000)
src/lib-index/mail-index-private.h
src/lib-index/mail-index.c
src/lib-index/mail-index.h
src/lib-storage/list/mail-storage-list-index-rebuild.c
src/lib-storage/mail-storage.c
src/plugins/quota/quota-count.c

index 5320bd53f47f3888c408ddad9e6dab21bf502ff7..55055c6de0c5d63cb22eb4ba4c544e5e857f71a0 100644 (file)
@@ -270,7 +270,7 @@ struct mail_index {
        /* Module-specific contexts. */
        ARRAY(union mail_index_module_context *) module_contexts;
 
-       /* Last error returned by mail_index_get_error_message().
+       /* Last error returned by mail_index_get_last_error().
           Cleared by mail_index_reset_error(). */
        struct mail_index_error last_error;
        /* Timestamp when mmap() failure was logged the last time. This is used
@@ -417,7 +417,7 @@ unsigned int mail_index_map_ext_hdr_offset(unsigned int name_len);
 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(). */
+   with mail_index_get_last_error(). */
 void mail_index_set_error(struct mail_index *index, const char *fmt, ...)
        ATTR_FORMAT(2, 3) ATTR_COLD;
 void mail_index_set_error_code(struct mail_index *index,
index 771d7fb3dbd2a866cae4e6051b8b572d600f3d6a..47af0751ff9d5b03327744dfecd0f864b1e2ad29 100644 (file)
@@ -1119,8 +1119,11 @@ void mail_index_file_set_syscall_error(struct mail_index *index,
        }
 }
 
-const char *mail_index_get_error_message(struct mail_index *index)
+const char *mail_index_get_last_error(struct mail_index *index,
+                                     enum mail_index_error_code *code_r)
 {
+       if (code_r != NULL)
+               *code_r = index->last_error.code;
        return index->last_error.text;
 }
 
index 7e2c0418f4744bd3ce2a9a2f53273a3f18d62fb8..f296c293d00fa93f74df2c76ceed69fa6434f90c 100644 (file)
@@ -731,7 +731,8 @@ void mail_index_update_header(struct mail_index_transaction *t,
 
 /* Returns the full error message for last error. This message may
    contain paths etc. so it shouldn't be shown to users. */
-const char *mail_index_get_error_message(struct mail_index *index);
+const char *mail_index_get_last_error(struct mail_index *index,
+                                     enum mail_index_error_code *error_r);
 /* Reset the error message. */
 void mail_index_reset_error(struct mail_index *index);
 
index dd0f3ec4a2a447f48436e2a31194ed2f8dd81cef..792f7977fb6a6c4fcc90d66c2bd3a235976123b6 100644 (file)
@@ -126,7 +126,7 @@ static bool try_get_mailbox_name(struct mail_storage_list_index_rebuild_ctx *ctx
                e_debug(ctx->storage->event, "Cannot open mailbox index at %s: Not found", path);
        } else if (rc < 0) {
                e_debug(ctx->storage->event, "Cannot open mailbox index at %s: %s",
-                       path, mail_index_get_error_message(index));
+                       path, mail_index_get_last_error(index, NULL));
        }
        mail_index_free(&index);
        return ret;
index 1ed9bf371644c0491acd0356a0b1bc50ab97164f..c84e7dce8c2f4c90ed20a092fa17eea495edfa0a 100644 (file)
@@ -794,7 +794,7 @@ void mail_storage_set_index_error(struct mail_storage *storage,
 
        mail_storage_set_internal_error(storage);
        /* use the lib-index's error as our internal error string */
-       index_error = mail_index_get_error_message(index);
+       index_error = mail_index_get_last_error(index, NULL);
        if (index_error == NULL)
                index_error = "BUG: Unknown internal index error";
        storage->last_internal_error = i_strdup(index_error);
index b86f77ca9510244a342b6224b252d7d8eefb86cb..26556797e16a3be80406f44ecdc2435ffee8d643 100644 (file)
@@ -311,7 +311,7 @@ static int quota_count_recalculate_box(struct mailbox *box,
                *error_r = t_strdup_printf(
                        "Couldn't commit mail index transaction for %s: %s",
                        box->vname,
-                       mail_index_get_error_message(box->view->index));
+                       mail_index_get_last_error(box->view->index, NULL));
                return -1;
        }
        /* getting the vsize now forces its recalculation */