Cross Reference: /dovecot/src/lib-storage/mail-error.c
mail-error.c revision bcb4e51a409d94ae670de96afb8483a4f7855294
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
0075dcb5aeeee4864fe9f64db82c8a8202bbe6d6henning mueller/* Copyright (c) 2007-2018 Dovecot authors, see the included COPYING file */
d8fe750649d3c87ea141981dde0182e879e27892Daniel Couto Vale
d8fe750649d3c87ea141981dde0182e879e27892Daniel Couto Vale#include "lib.h"
432ee743a5f1c5688c73446b5977b06ed97fb67cJulian Kornberger#include "eacces-error.h"
418f6b8fb54a23686e8a384a65903df27e59c03bhenning mueller#include "mail-error.h"
d0e19b833d7f9c691a36342c365029720c095742henning mueller
d0e19b833d7f9c691a36342c365029720c095742henning muellerbool mail_error_from_errno(enum mail_error *error_r,
d8fe750649d3c87ea141981dde0182e879e27892Daniel Couto Vale const char **error_string_r)
7a522a1916e13f0cdbf191f633a4fc2523444038Daniel Couto Vale{
ec96c6e3605c2e9eb5c0113e4e1b07b3b5228c8chenning mueller if (ENOACCESS(errno)) {
d8fe750649d3c87ea141981dde0182e879e27892Daniel Couto Vale *error_r = MAIL_ERROR_PERM;
22e260fcd85642794d99c2ffaa333f2ef6ed7828Daniel Couto Vale *error_string_r = MAIL_ERRSTR_NO_PERMISSION;
22e260fcd85642794d99c2ffaa333f2ef6ed7828Daniel Couto Vale } else if (ENOQUOTA(errno)) {
9f820b8418985826ffbe714a8c509ff34db315a7Julian Kornberger *error_r = MAIL_ERROR_NOQUOTA;
d95c0de1fbdb66e2aa8d2dc223ad554413f1dc87Julian Kornberger *error_string_r = MAIL_ERRSTR_NO_QUOTA;
77ccd99c84e9f4689ffa28fc7f0870ab5d4803bdIngo Becker } else if (ENOTFOUND(errno)) {
cad2121a9e9a87317333b202956ce7478efcc257henning mueller *error_r = MAIL_ERROR_NOTFOUND;
20c94fa632f5b9a5a1b2fbc28fa46f2afe7c65c2Tim Reddehase *error_string_r = errno != ELOOP ? "Not found" :
20c94fa632f5b9a5a1b2fbc28fa46f2afe7c65c2Tim Reddehase "Directory structure is broken";
20c94fa632f5b9a5a1b2fbc28fa46f2afe7c65c2Tim Reddehase } else {
e165d93c5dc7e3989fdbde84d77e7ffdd40d73e2Daniel Vale return FALSE;
0cd37f42517da8081f1e90a0fdfbb82a526c1704henning mueller }
3eedfb6dd90308259bcfeddaa2cc883c1219df76henning mueller return TRUE;
d8fe750649d3c87ea141981dde0182e879e27892Daniel Couto Vale}
ec96c6e3605c2e9eb5c0113e4e1b07b3b5228c8chenning mueller
d8fe750649d3c87ea141981dde0182e879e27892Daniel Couto Valeconst char *mail_error_eacces_msg(const char *func, const char *path)
d8fe750649d3c87ea141981dde0182e879e27892Daniel Couto Vale{
555b7fd96768daf9592e7ddbd4217d784b08e451henning mueller return eacces_error_get(func, path);
c089c2e01fd049de4c25af718af1a26b8846c890Julian Kornberger}
d8fe750649d3c87ea141981dde0182e879e27892Daniel Couto Vale
93601837822998e6b847baa46d986f7cfc21d46fDaniel Couto Valeconst char *mail_error_create_eacces_msg(const char *func, const char *path)
b102762b9929e05da38f569e41d3eda29c4a14bfhenning mueller{
3673a5da2076d73aa8c1ed9fa7e6ffcc412b8178Tim Reddehase return eacces_error_get_creating(func, path);
93601837822998e6b847baa46d986f7cfc21d46fDaniel Couto Vale}
7ef46b1adca473f664769a44a378e9f08385d3a0Julian Kornberger