Mercurial > dovecot > original-hg > dovecot-1.2
changeset 1579:a0207c0adf7e HEAD
When deleting directory, delete .imap dir under it first.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Thu, 26 Jun 2003 02:31:03 +0300 |
parents | ab2fb3c6a12b |
children | a3de39b92838 |
files | src/lib-storage/index/mbox/mbox-storage.c |
diffstat | 1 files changed, 14 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lib-storage/index/mbox/mbox-storage.c Thu Jun 26 02:15:34 2003 +0300 +++ b/src/lib-storage/index/mbox/mbox-storage.c Thu Jun 26 02:31:03 2003 +0300 @@ -497,7 +497,20 @@ } if (S_ISDIR(st.st_mode)) { - /* deleting a folder, only allow it if it's empty */ + /* deleting a folder, only allow it if it's empty. + Delete .imap folder before to make sure it goes empty. */ + index_dir = t_strconcat(storage->index_dir, "/", name, + "/.imap", NULL); + + if (index_dir != NULL && rmdir(index_dir) < 0 && + !ENOTFOUND(errno) && errno != ENOTEMPTY) { + if (!mbox_handle_errors(storage)) { + mail_storage_set_critical(storage, + "rmdir() failed for %s: %m", index_dir); + return FALSE; + } + } + if (rmdir(path) == 0) return TRUE;