annotate src/lib-storage/mail-error.c @ 9266:cd29b745c8dd HEAD

configure: clock_gettime()'s -lrt adding dropped everything else from $LIBS.
author Timo Sirainen <tss@iki.fi>
date Mon, 27 Jul 2009 06:32:42 -0400
parents 6ec819adfde3
children 00cd9aacd03c
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8590
b9faf4db2a9f Updated copyright notices to include year 2009.
Timo Sirainen <tss@iki.fi>
parents: 8518
diff changeset
1 /* Copyright (c) 2007-2009 Dovecot authors, see the included COPYING file */
5613
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
2
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3 #include "lib.h"
8759
6ec819adfde3 Moved user-friendly EACCES error message generation to lib/.
Timo Sirainen <tss@iki.fi>
parents: 8643
diff changeset
4 #include "eacces-error.h"
5613
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
5 #include "mail-error.h"
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
6
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
7 bool mail_error_from_errno(enum mail_error *error_r,
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
8 const char **error_string_r)
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9 {
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
10 if (ENOACCESS(errno)) {
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
11 *error_r = MAIL_ERROR_PERM;
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12 *error_string_r = MAIL_ERRSTR_NO_PERMISSION;
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
13 } else if (ENOSPACE(errno)) {
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
14 *error_r = MAIL_ERROR_NOSPACE;
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
15 *error_string_r = MAIL_ERRSTR_NO_SPACE;
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
16 } else if (ENOTFOUND(errno)) {
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
17 *error_r = MAIL_ERROR_NOTFOUND;
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
18 *error_string_r = errno != ELOOP ? "Not found" :
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
19 "Directory structure is broken";
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
20 } else {
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
21 return FALSE;
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
22 }
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
23 return TRUE;
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
24 }
8518
1e42b631f037 Improved "Permission denied" error handling. It'll now show also the uid/gid name.
Timo Sirainen <tss@iki.fi>
parents: 7086
diff changeset
25
8642
dd53d40a2f09 Permission denied error handling can now suggest missing +w permissions.
Timo Sirainen <tss@iki.fi>
parents: 8641
diff changeset
26 const char *mail_error_eacces_msg(const char *func, const char *path)
dd53d40a2f09 Permission denied error handling can now suggest missing +w permissions.
Timo Sirainen <tss@iki.fi>
parents: 8641
diff changeset
27 {
8759
6ec819adfde3 Moved user-friendly EACCES error message generation to lib/.
Timo Sirainen <tss@iki.fi>
parents: 8643
diff changeset
28 return eacces_error_get(func, path);
8642
dd53d40a2f09 Permission denied error handling can now suggest missing +w permissions.
Timo Sirainen <tss@iki.fi>
parents: 8641
diff changeset
29 }
dd53d40a2f09 Permission denied error handling can now suggest missing +w permissions.
Timo Sirainen <tss@iki.fi>
parents: 8641
diff changeset
30
dd53d40a2f09 Permission denied error handling can now suggest missing +w permissions.
Timo Sirainen <tss@iki.fi>
parents: 8641
diff changeset
31 const char *mail_error_create_eacces_msg(const char *func, const char *path)
dd53d40a2f09 Permission denied error handling can now suggest missing +w permissions.
Timo Sirainen <tss@iki.fi>
parents: 8641
diff changeset
32 {
8759
6ec819adfde3 Moved user-friendly EACCES error message generation to lib/.
Timo Sirainen <tss@iki.fi>
parents: 8643
diff changeset
33 return eacces_error_get_creating(func, path);
8642
dd53d40a2f09 Permission denied error handling can now suggest missing +w permissions.
Timo Sirainen <tss@iki.fi>
parents: 8641
diff changeset
34 }