dovecot-2.0: maildir_list_iter_is_mailbox() should return 0 for ...

dovecot at dovecot.org dovecot at dovecot.org
Tue Jul 28 02:04:46 EEST 2009


details:   http://hg.dovecot.org/dovecot-2.0/rev/80cf689acdb4
changeset: 9682:80cf689acdb4
user:      Timo Sirainen <tss at iki.fi>
date:      Mon Jul 27 18:53:32 2009 -0400
description:
maildir_list_iter_is_mailbox() should return 0 for non-existing maildirs.

diffstat:

1 file changed, 5 insertions(+), 1 deletion(-)
src/lib-storage/index/maildir/maildir-storage.c |    6 +++++-

diffs (37 lines):

diff -r cf187692fcfe -r 80cf689acdb4 src/lib-storage/index/maildir/maildir-storage.c
--- a/src/lib-storage/index/maildir/maildir-storage.c	Mon Jul 27 18:47:16 2009 -0400
+++ b/src/lib-storage/index/maildir/maildir-storage.c	Mon Jul 27 18:53:32 2009 -0400
@@ -867,6 +867,7 @@ maildir_list_iter_is_mailbox(struct mail
 {
 	struct stat st, st2;
 	const char *path, *cur_path;
+	int ret;
 
 	if (maildir_is_internal_name(fname)) {
 		*flags |= MAILBOX_NONEXISTENT;
@@ -898,13 +899,16 @@ maildir_list_iter_is_mailbox(struct mail
 			}
 			return 0;
 		}
+		ret = 1;
 	} else if (errno == ENOENT) {
 		/* doesn't exist - probably a non-existing subscribed mailbox */
 		*flags |= MAILBOX_NONEXISTENT;
+		ret = 0;
 	} else {
 		/* non-selectable. probably either access denied, or symlink
 		   destination not found. don't bother logging errors. */
 		*flags |= MAILBOX_NOSELECT;
+		ret = 1;
 	}
 	if ((*flags & (MAILBOX_NOSELECT | MAILBOX_NONEXISTENT)) == 0) {
 		/* make sure it's a selectable mailbox */
@@ -941,7 +945,7 @@ maildir_list_iter_is_mailbox(struct mail
 			}
 		}
 	}
-	return 1;
+	return ret;
 }
 
 static int


More information about the dovecot-cvs mailing list