From: Timo Sirainen Date: Sat, 27 Jun 2009 22:51:42 +0000 (-0400) Subject: Use eacces_get_error() in more places for handling EACCES errors. X-Git-Tag: 2.0.alpha1~517 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1dd875d96ab5640f78250079961c10e99ed4aa79;p=thirdparty%2Fdovecot%2Fcore.git Use eacces_get_error() in more places for handling EACCES errors. --HG-- branch : HEAD --- diff --git a/src/lib-index/mail-index.c b/src/lib-index/mail-index.c index 7a59c85cb9..1ed8be4e81 100644 --- a/src/lib-index/mail-index.c +++ b/src/lib-index/mail-index.c @@ -4,6 +4,7 @@ #include "ioloop.h" #include "array.h" #include "buffer.h" +#include "eacces-error.h" #include "hash.h" #include "str-sanitize.h" #include "mmap-util.h" @@ -700,8 +701,13 @@ int mail_index_file_set_syscall_error(struct mail_index *index, return -1; } - return mail_index_set_error(index, "%s failed with file %s: %m", - function, filepath); + if (errno == EACCES) { + return mail_index_set_error(index, "%s", + eacces_error_get(t_strcut(function, '('), filepath)); + } else { + return mail_index_set_error(index, "%s failed with file %s: %m", + function, filepath); + } } const char *mail_index_get_error_message(struct mail_index *index) diff --git a/src/lib-storage/index/maildir/maildir-uidlist.c b/src/lib-storage/index/maildir/maildir-uidlist.c index 262f6f1c67..2d9f56a8fd 100644 --- a/src/lib-storage/index/maildir/maildir-uidlist.c +++ b/src/lib-storage/index/maildir/maildir-uidlist.c @@ -34,6 +34,7 @@ #include "file-dotlock.h" #include "close-keep-errno.h" #include "nfs-workarounds.h" +#include "eacces-error.h" #include "maildir-storage.h" #include "maildir-sync.h" #include "maildir-filename.h" @@ -172,8 +173,14 @@ static int maildir_uidlist_lock_timeout(struct maildir_uidlist *uidlist, } if (errno != ENOENT || i == MAILDIR_DELETE_RETRY_COUNT || uidlist->mbox == NULL) { - mail_storage_set_critical(box->storage, - "file_dotlock_create(%s) failed: %m", path); + if (errno == EACCES) { + mail_storage_set_critical(box->storage, "%s", + eacces_error_get_creating("file_dotlock_create", path)); + } else { + mail_storage_set_critical(box->storage, + "file_dotlock_create(%s) failed: %m", + path); + } return -1; } /* the control dir doesn't exist. create it unless the whole