annotate src/lib-storage/mail-error.h @ 9354:687ac828b964 HEAD

lib-index: modseqs weren't tracked properly within session when changes were done.
author Timo Sirainen <tss@iki.fi>
date Tue, 01 Sep 2009 13:05:03 -0400
parents dd53d40a2f09
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6410
e4eb71ae8e96 Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents: 5614
diff changeset
1 #ifndef MAIL_ERROR_H
e4eb71ae8e96 Changed .h ifdef/defines to use <NAME>_H format.
Timo Sirainen <tss@iki.fi>
parents: 5614
diff changeset
2 #define MAIL_ERROR_H
5613
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
3
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
4 /* Some error strings that should be used everywhere to avoid
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
5 permissions checks from revealing mailbox's existence */
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
6 #define MAIL_ERRSTR_MAILBOX_NOT_FOUND "Mailbox doesn't exist: %s"
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
7 #define MAIL_ERRSTR_NO_PERMISSION "Permission denied"
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
8
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
9 /* And just for making error strings consistent: */
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
10 #define MAIL_ERRSTR_NO_SPACE "Not enough disk space"
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
11 #define MAIL_ERRSTR_LOCK_TIMEOUT "Timeout while waiting for lock"
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
12
8417
106ad33091ca Made CRITICAL_MSG* public to MAIL_ERRSTR_CRITICAL_MSG* in mail-error.h.
Timo Sirainen <tss@iki.fi>
parents: 8411
diff changeset
13 /* Message to show to users when critical error occurs */
106ad33091ca Made CRITICAL_MSG* public to MAIL_ERRSTR_CRITICAL_MSG* in mail-error.h.
Timo Sirainen <tss@iki.fi>
parents: 8411
diff changeset
14 #define MAIL_ERRSTR_CRITICAL_MSG \
106ad33091ca Made CRITICAL_MSG* public to MAIL_ERRSTR_CRITICAL_MSG* in mail-error.h.
Timo Sirainen <tss@iki.fi>
parents: 8411
diff changeset
15 "Internal error occurred. Refer to server log for more information."
106ad33091ca Made CRITICAL_MSG* public to MAIL_ERRSTR_CRITICAL_MSG* in mail-error.h.
Timo Sirainen <tss@iki.fi>
parents: 8411
diff changeset
16 #define MAIL_ERRSTR_CRITICAL_MSG_STAMP \
106ad33091ca Made CRITICAL_MSG* public to MAIL_ERRSTR_CRITICAL_MSG* in mail-error.h.
Timo Sirainen <tss@iki.fi>
parents: 8411
diff changeset
17 MAIL_ERRSTR_CRITICAL_MSG " [%Y-%m-%d %H:%M:%S]"
106ad33091ca Made CRITICAL_MSG* public to MAIL_ERRSTR_CRITICAL_MSG* in mail-error.h.
Timo Sirainen <tss@iki.fi>
parents: 8411
diff changeset
18
5613
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
19 #define T_MAIL_ERR_MAILBOX_NOT_FOUND(name) \
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
20 t_strdup_printf(MAIL_ERRSTR_MAILBOX_NOT_FOUND, name)
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
21
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
22 enum mail_error {
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
23 MAIL_ERROR_NONE = 0,
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
24
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
25 /* Temporary internal error */
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
26 MAIL_ERROR_TEMP,
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
27 /* It's not possible to do the wanted operation */
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
28 MAIL_ERROR_NOTPOSSIBLE,
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
29 /* Invalid parameters (eg. mailbox name not valid) */
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
30 MAIL_ERROR_PARAMS,
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
31 /* No permission to do the request */
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
32 MAIL_ERROR_PERM,
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
33 /* Out of disk space or quota */
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
34 MAIL_ERROR_NOSPACE,
8411
abd0ef855a33 Implemented imap-response-codes draft.
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
35 /* Item (e.g. mailbox) doesn't exist or it's not visible to us */
5614
a4e5053fb31a Added MAIL_ERROR_EXPUNGED. Set the error whenever expunged message is tried
Timo Sirainen <tss@iki.fi>
parents: 5613
diff changeset
36 MAIL_ERROR_NOTFOUND,
8411
abd0ef855a33 Implemented imap-response-codes draft.
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
37 /* Item (e.g. mailbox) already exists */
abd0ef855a33 Implemented imap-response-codes draft.
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
38 MAIL_ERROR_EXISTS,
5614
a4e5053fb31a Added MAIL_ERROR_EXPUNGED. Set the error whenever expunged message is tried
Timo Sirainen <tss@iki.fi>
parents: 5613
diff changeset
39 /* Tried to access an expunged message */
8411
abd0ef855a33 Implemented imap-response-codes draft.
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
40 MAIL_ERROR_EXPUNGED,
abd0ef855a33 Implemented imap-response-codes draft.
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
41 /* Operation cannot be done because another session prevents it
abd0ef855a33 Implemented imap-response-codes draft.
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
42 (e.g. lock timeout) */
abd0ef855a33 Implemented imap-response-codes draft.
Timo Sirainen <tss@iki.fi>
parents: 6410
diff changeset
43 MAIL_ERROR_INUSE
5613
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
44 };
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
45
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
46 /* Convert errno to mail_error and an error string. Returns TRUE if successful,
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
47 FALSE if we couldn't handle the errno. */
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
48 bool mail_error_from_errno(enum mail_error *error_r,
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
49 const char **error_string_r);
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
50
8642
dd53d40a2f09 Permission denied error handling can now suggest missing +w permissions.
Timo Sirainen <tss@iki.fi>
parents: 8518
diff changeset
51 /* Build a helpful error message for a failed EACCES syscall. */
8518
1e42b631f037 Improved "Permission denied" error handling. It'll now show also the uid/gid name.
Timo Sirainen <tss@iki.fi>
parents: 8417
diff changeset
52 const char *mail_error_eacces_msg(const char *func, const char *path);
8642
dd53d40a2f09 Permission denied error handling can now suggest missing +w permissions.
Timo Sirainen <tss@iki.fi>
parents: 8518
diff changeset
53 /* Build a helpful error message for a failed EACCES syscall that tried to
dd53d40a2f09 Permission denied error handling can now suggest missing +w permissions.
Timo Sirainen <tss@iki.fi>
parents: 8518
diff changeset
54 write to directory (create, rename, etc). */
dd53d40a2f09 Permission denied error handling can now suggest missing +w permissions.
Timo Sirainen <tss@iki.fi>
parents: 8518
diff changeset
55 const char *mail_error_create_eacces_msg(const char *func, const char *path);
8518
1e42b631f037 Improved "Permission denied" error handling. It'll now show also the uid/gid name.
Timo Sirainen <tss@iki.fi>
parents: 8417
diff changeset
56
5613
f717fb4b31c0 Error handling rewrite.
Timo Sirainen <tss@iki.fi>
parents:
diff changeset
57 #endif