changeset 9535:bbe4c24faf21 HEAD

Use eacces_get_error() in more places for handling EACCES errors.
author Timo Sirainen <tss@iki.fi>
date Sat, 27 Jun 2009 18:51:42 -0400
parents 8760bc0b1c3a
children 5a413a1beb60
files src/lib-index/mail-index.c src/lib-storage/index/maildir/maildir-uidlist.c
diffstat 2 files changed, 17 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-index/mail-index.c	Sat Jun 27 18:51:06 2009 -0400
+++ b/src/lib-index/mail-index.c	Sat Jun 27 18:51:42 2009 -0400
@@ -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 @@
 			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)
--- a/src/lib-storage/index/maildir/maildir-uidlist.c	Sat Jun 27 18:51:06 2009 -0400
+++ b/src/lib-storage/index/maildir/maildir-uidlist.c	Sat Jun 27 18:51:42 2009 -0400
@@ -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 @@
 		}
 		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