]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
Use eacces_get_error() in more places for handling EACCES errors.
authorTimo Sirainen <tss@iki.fi>
Sat, 27 Jun 2009 22:51:42 +0000 (18:51 -0400)
committerTimo Sirainen <tss@iki.fi>
Sat, 27 Jun 2009 22:51:42 +0000 (18:51 -0400)
--HG--
branch : HEAD

src/lib-index/mail-index.c
src/lib-storage/index/maildir/maildir-uidlist.c

index 7a59c85cb9c99081f8372a05611226a04641984c..1ed8be4e81e65fefe6e62919086ca8399db3265d 100644 (file)
@@ -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)
index 262f6f1c671fd410021ac0e74dcd31ddb9c9ea68..2d9f56a8fd2896710298b639034dacf09113f5f7 100644 (file)
@@ -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