mail-error.h revision 10ac3345fef3976ef573122de2a58a50c2fa63ce
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen/* Some error strings that should be used everywhere to avoid
8363f50d7b5d605912e55c34f7f28e9f4ce01341Timo Sirainen permissions checks from revealing mailbox's existence */
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen#define MAIL_ERRSTR_MAILBOX_NOT_FOUND "Mailbox doesn't exist: %s"
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen#define MAIL_ERRSTR_NO_PERMISSION "Permission denied"
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen/* And just for making error strings consistent: */
9334fbad0aabb2fed88f40b2205d0d6f80bdffa2Timo Sirainen#define MAIL_ERRSTR_NO_QUOTA "Not enough disk quota"
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen#define MAIL_ERRSTR_LOCK_TIMEOUT "Timeout while waiting for lock"
c36ec256c1bd1abe1c12e792cf64f0b7e3b3135aTimo Sirainen/* Message to show to users when critical error occurs */
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen "Internal error occurred. Refer to server log for more information."
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen MAIL_ERRSTR_CRITICAL_MSG " [%Y-%m-%d %H:%M:%S]"
f0a2d04321ba456e5c5ba821c0d1ed9e8e0e2e08Timo Sirainen t_strdup_printf(MAIL_ERRSTR_MAILBOX_NOT_FOUND, name)
f0a2d04321ba456e5c5ba821c0d1ed9e8e0e2e08Timo Sirainen /* Temporary internal error */
8363f50d7b5d605912e55c34f7f28e9f4ce01341Timo Sirainen /* Temporary failure because a subsystem is down */
f0a2d04321ba456e5c5ba821c0d1ed9e8e0e2e08Timo Sirainen /* It's not possible to do the wanted operation */
f0a2d04321ba456e5c5ba821c0d1ed9e8e0e2e08Timo Sirainen /* Invalid parameters (eg. mailbox name not valid) */
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen /* No permission to do the request */
98922c5675bbbfadc84d58768bef867fe82256c2Timo Sirainen /* Out of disk quota for user */
98922c5675bbbfadc84d58768bef867fe82256c2Timo Sirainen /* Item (e.g. mailbox) doesn't exist or it's not visible to us */
98922c5675bbbfadc84d58768bef867fe82256c2Timo Sirainen /* Item (e.g. mailbox) already exists */
98922c5675bbbfadc84d58768bef867fe82256c2Timo Sirainen /* Tried to access an expunged message */
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen /* Operation cannot be done because another session prevents it
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen (e.g. lock timeout) */
2cfe9983ce7a6280636ee12beccc2e865111967bTimo Sirainen /* Can't do the requested data conversion (e.g. IMAP BINARY's
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen UNKNOWN-CTE code) */
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen /* Can't do the requested data conversion because the original data
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen isn't valid. */
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen /* Operation ran against some kind of a limit. */
98922c5675bbbfadc84d58768bef867fe82256c2Timo Sirainen /* Operation couldn't be finished as efficiently as required by
98922c5675bbbfadc84d58768bef867fe82256c2Timo Sirainen mail.lookup_abort. */
98922c5675bbbfadc84d58768bef867fe82256c2Timo Sirainen/* Convert errno to mail_error and an error string. Returns TRUE if successful,
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen FALSE if we couldn't handle the errno. */
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainenbool mail_error_from_errno(enum mail_error *error_r,
b6a7e0a7899e7f5d60c23cdaa50e025e4c67d05fTimo Sirainen/* Build a helpful error message for a failed EACCES syscall. */
b6a7e0a7899e7f5d60c23cdaa50e025e4c67d05fTimo Sirainenconst char *mail_error_eacces_msg(const char *func, const char *path);
0cb2e8eb55e70f8ebe1e8349bdf49e4cbe5d8834Timo Sirainen/* Build a helpful error message for a failed EACCES syscall that tried to
d42eb03b3a4e79a2da22a1be2de59b95660af2beTimo Sirainen write to directory (create, rename, etc). */
b6a7e0a7899e7f5d60c23cdaa50e025e4c67d05fTimo Sirainenconst char *mail_error_create_eacces_msg(const char *func, const char *path);