]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Added mailbox_name parameter to mailbox_list.iter_is_mailbox().
authorTimo Sirainen <tss@iki.fi>
Sun, 4 May 2008 20:45:42 +0000 (23:45 +0300)
committerTimo Sirainen <tss@iki.fi>
Sun, 4 May 2008 20:45:42 +0000 (23:45 +0300)
--HG--
branch : HEAD

src/lib-storage/index/cydir/cydir-storage.c
src/lib-storage/index/dbox/dbox-storage.c
src/lib-storage/index/maildir/maildir-storage.c
src/lib-storage/index/mbox/istream-raw-mbox.c
src/lib-storage/index/mbox/mbox-storage.c
src/lib-storage/index/raw/raw-storage.c
src/lib-storage/list/mailbox-list-fs-iter.c
src/lib-storage/list/mailbox-list-maildir-iter.c
src/lib-storage/mailbox-list-private.h

index 9c4829605b54861b32d2ce817f91f79b0b9e0fe3..e010fd71be80a733b244059587534607e6c53e1d 100644 (file)
@@ -28,6 +28,7 @@ static int
 cydir_list_delete_mailbox(struct mailbox_list *list, const char *name);
 static int cydir_list_iter_is_mailbox(struct mailbox_list_iterate_context *ctx,
                                      const char *dir, const char *fname,
+                                     const char *mailbox_name,
                                      enum mailbox_list_file_type type,
                                      enum mailbox_info_flags *flags);
 
@@ -335,6 +336,7 @@ static void cydir_notify_changes(struct mailbox *box)
 static int cydir_list_iter_is_mailbox(struct mailbox_list_iterate_context *ctx
                                                        ATTR_UNUSED,
                                      const char *dir, const char *fname,
+                                     const char *mailbox_name ATTR_UNUSED,
                                      enum mailbox_list_file_type type,
                                      enum mailbox_info_flags *flags)
 {
index 4b6a15fb2ea3f4b6d268ccc9f24d2cb123da2af9..c5a23595b1de5e21e050255a9b0adfc4d389b474 100644 (file)
@@ -40,6 +40,7 @@ dbox_list_rename_mailbox_pre(struct mailbox_list *list,
                             const char *oldname, const char *newname);
 static int dbox_list_iter_is_mailbox(struct mailbox_list_iterate_context *ctx,
                                     const char *dir, const char *fname,
+                                    const char *mailbox_name,
                                     enum mailbox_list_file_type type,
                                     enum mailbox_info_flags *flags);
 
@@ -306,7 +307,7 @@ dbox_mailbox_open(struct mail_storage *_storage, const char *name,
 static int dbox_storage_mailbox_close(struct mailbox *box)
 {
        struct dbox_mailbox *mbox = (struct dbox_mailbox *)box;
-       int ret;
+       int ret = 0;
 
        if (box->opened) {
                /* see if we want to flush dirty flags */
@@ -581,6 +582,7 @@ static void dbox_notify_changes(struct mailbox *box)
 static int dbox_list_iter_is_mailbox(struct mailbox_list_iterate_context *ctx
                                                        ATTR_UNUSED,
                                     const char *dir, const char *fname,
+                                    const char *mailbox_name ATTR_UNUSED,
                                     enum mailbox_list_file_type type,
                                     enum mailbox_info_flags *flags)
 {
index ffd785f3a3fdae075e94f20500c8ab6d998c1b96..1a6ddc168ad020c41da33a4aa104a29882b75d6e 100644 (file)
@@ -48,14 +48,15 @@ static int
 maildir_list_rename_mailbox(struct mailbox_list *list,
                            const char *oldname, const char *newname);
 static int
-maildir_list_iter_is_mailbox(struct mailbox_list_iterate_context *ctx
-                               ATTR_UNUSED,
+maildir_list_iter_is_mailbox(struct mailbox_list_iterate_context *ctx,
                             const char *dir, const char *fname,
+                            const char *mailbox_name,
                             enum mailbox_list_file_type type,
                             enum mailbox_info_flags *flags_r);
 static int
 maildirplusplus_iter_is_mailbox(struct mailbox_list_iterate_context *ctx,
                                const char *dir, const char *fname,
+                               const char *mailbox_name,
                                enum mailbox_list_file_type type,
                                enum mailbox_info_flags *flags_r);
 
@@ -864,6 +865,7 @@ static int
 maildir_list_iter_is_mailbox(struct mailbox_list_iterate_context *ctx
                                ATTR_UNUSED,
                             const char *dir, const char *fname,
+                            const char *mailbox_name ATTR_UNUSED,
                             enum mailbox_list_file_type type,
                             enum mailbox_info_flags *flags_r)
 {
@@ -913,6 +915,7 @@ maildir_list_iter_is_mailbox(struct mailbox_list_iterate_context *ctx
 static int
 maildirplusplus_iter_is_mailbox(struct mailbox_list_iterate_context *ctx,
                                const char *dir, const char *fname,
+                               const char *mailbox_name ATTR_UNUSED,
                                enum mailbox_list_file_type type,
                                enum mailbox_info_flags *flags_r)
 {
index 97094e02c3deaf491c90fc554fa5ea53d7bdfa5e..ce80ef99222ef2947f02e4e9a6a0430386c8fe01 100644 (file)
@@ -300,6 +300,7 @@ static ssize_t i_stream_raw_mbox_read(struct istream_private *stream)
                   cached next_offset? */
                i_error("Next message unexpectedly lost from %"PRIuUOFF_T,
                        rstream->hdr_offset + rstream->mail_size);
+               sleep(3600);
                rstream->eof = TRUE;
                rstream->corrupted = TRUE;
                return -1;
index 7b968df676f21c49f577cfd4115c0142ea0df7cc..04061392a35cb8de8aaa944c83527d02ee85b7b1 100644 (file)
@@ -71,6 +71,7 @@ static MODULE_CONTEXT_DEFINE_INIT(mbox_mailbox_list_module,
 
 static int mbox_list_iter_is_mailbox(struct mailbox_list_iterate_context *ctx,
                                     const char *dir, const char *fname,
+                                    const char *mailbox_name,
                                     enum mailbox_list_file_type type,
                                     enum mailbox_info_flags *flags);
 static int mbox_list_delete_mailbox(struct mailbox_list *list,
@@ -797,6 +798,7 @@ is_inbox_file(struct mailbox_list *list, const char *path, const char *fname)
 
 static int mbox_list_iter_is_mailbox(struct mailbox_list_iterate_context *ctx,
                                     const char *dir, const char *fname,
+                                    const char *mailbox_name ATTR_UNUSED,
                                     enum mailbox_list_file_type type,
                                     enum mailbox_info_flags *flags_r)
 {
index ec51ea7a86641263fd461f50d5eccfdd58df852f..c8317e78261252a8ce9f86970dd82981a22b0d3b 100644 (file)
@@ -21,6 +21,7 @@ static MODULE_CONTEXT_DEFINE_INIT(raw_mailbox_list_module,
 static int raw_list_delete_mailbox(struct mailbox_list *list, const char *name);
 static int raw_list_iter_is_mailbox(struct mailbox_list_iterate_context *ctx,
                                    const char *dir, const char *fname,
+                                   const char *mailbox_name,
                                    enum mailbox_list_file_type type,
                                    enum mailbox_info_flags *flags);
 
@@ -200,6 +201,7 @@ static void raw_notify_changes(struct mailbox *box ATTR_UNUSED)
 
 static int raw_list_iter_is_mailbox(struct mailbox_list_iterate_context *ctx,
                                    const char *dir, const char *fname,
+                                   const char *mailbox_name ATTR_UNUSED,
                                    enum mailbox_list_file_type type,
                                    enum mailbox_info_flags *flags_r)
 {
index 4279d0538b698644bc52a42f10958254f8f19388..617d03af02181e845442454f8811b769b61b6830 100644 (file)
@@ -349,7 +349,7 @@ static struct mailbox_info *fs_list_inbox(struct fs_list_iterate_context *ctx)
        inbox_path = mailbox_list_get_path(ctx->ctx.list, "INBOX",
                                           MAILBOX_LIST_PATH_TYPE_DIR);
        path_split(inbox_path, &dir, &fname);
-       if (ctx->ctx.list->v.iter_is_mailbox(&ctx->ctx, dir, fname,
+       if (ctx->ctx.list->v.iter_is_mailbox(&ctx->ctx, dir, fname, "INBOX",
                                             MAILBOX_LIST_FILE_TYPE_UNKNOWN,
                                             &ctx->info.flags) < 0)
                ctx->ctx.failed = TRUE;
@@ -492,7 +492,7 @@ list_file(struct fs_list_iterate_context *ctx,
        ctx->info.flags = 0;
        ret = ctx->ctx.list->v.
                iter_is_mailbox(&ctx->ctx, ctx->dir->real_path, fname,
-                               entry->type, &ctx->info.flags);
+                               list_path, entry->type, &ctx->info.flags);
        if (ret <= 0)
                return ret;
 
@@ -551,6 +551,7 @@ fs_list_subs(struct fs_list_iterate_context *ctx)
                                     MAILBOX_LIST_PATH_TYPE_DIR);
        path_split(path, &dir, &fname);
        if (ctx->ctx.list->v.iter_is_mailbox(&ctx->ctx, dir, fname,
+                                            ctx->info.name,
                                             MAILBOX_LIST_FILE_TYPE_UNKNOWN,
                                             &ctx->info.flags) < 0)
                ctx->ctx.failed = TRUE;
index 255769289da6e16d73020d2e08b6634ce3951c81..f193347a3126d67350ff07a0f19272e634c46762 100644 (file)
@@ -183,6 +183,7 @@ maildir_fill_readdir(struct maildir_list_iterate_context *ctx,
                T_BEGIN {
                        ret = ctx->ctx.list->v.
                                iter_is_mailbox(&ctx->ctx, ctx->dir, fname,
+                                       mailbox_name,
                                        mailbox_list_get_file_type(d), &flags);
                } T_END;
                if (ret <= 0) {
@@ -251,7 +252,7 @@ maildir_fill_readdir(struct maildir_list_iterate_context *ctx,
                   imap_match(glob, "INBOX") == IMAP_MATCH_YES) {
                /* see if INBOX exists. */
                ret = ctx->ctx.list->v.
-                       iter_is_mailbox(&ctx->ctx, ctx->dir, "",
+                       iter_is_mailbox(&ctx->ctx, ctx->dir, "", "INBOX",
                                        MAILBOX_LIST_FILE_TYPE_UNKNOWN, &flags);
                if (ret > 0) {
                        node = mailbox_tree_get(ctx->tree_ctx,
index 20464d7703b691fb5f1a4cec5bd3f64b43848a2c..55d9514eb4beba05af6cb1e5569a4b64607a401a 100644 (file)
@@ -41,6 +41,7 @@ struct mailbox_list_vfuncs {
           flags may be updated (especially the children flags). */
        int (*iter_is_mailbox)(struct mailbox_list_iterate_context *ctx,
                               const char *dir, const char *fname,
+                              const char *mailbox_name,
                               enum mailbox_list_file_type type,
                               enum mailbox_info_flags *flags_r);