diff options
| author | Laurent Bercot <ska-skaware@skarnet.org> | 2023-10-18 13:07:23 +0000 |
|---|---|---|
| committer | Laurent Bercot <ska@appnovation.com> | 2023-10-18 13:07:23 +0000 |
| commit | 1a7e3d00588725da3d8764fa9d624bc8611be070 (patch) | |
| tree | 65d28b52bd1d4ccdbeb418d4d681b1999ed46b7a /src/libtipidee/tipidee_conf_get_errorfile.c | |
| parent | 24fb88dbb023ae08adc9989bf19e0c6c569a6607 (diff) | |
| download | tipidee-1a7e3d00588725da3d8764fa9d624bc8611be070.tar.gz | |
Add infrastructure for custom error files
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/libtipidee/tipidee_conf_get_errorfile.c')
| -rw-r--r-- | src/libtipidee/tipidee_conf_get_errorfile.c | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/src/libtipidee/tipidee_conf_get_errorfile.c b/src/libtipidee/tipidee_conf_get_errorfile.c new file mode 100644 index 0000000..732ff9d --- /dev/null +++ b/src/libtipidee/tipidee_conf_get_errorfile.c @@ -0,0 +1,24 @@ +/* ISC license. */ + +#include <string.h> +#include <errno.h> + +#include <skalibs/types.h> + +#include <tipidee/conf.h> + +char const *tipidee_conf_get_errorfile (tipidee_conf const *conf, char const *docroot, unsigned int status) +{ + size_t docrootlen = strlen(docroot) ; + char key[7 + docrootlen] ; + if (status < 100 || status > 999) goto err ; + key[0] = 'E' ; key[1] = ':' ; + uint_fmt(key + 2, status) ; + key[5] = ':' ; + memcpy(key + 6, docroot, docrootlen + 1) ; + return tipidee_conf_get_string(conf, key) ; + + err: + errno = EINVAL ; + return 0 ; +} |
