From: Markus Valentin Date: Tue, 25 May 2021 10:40:55 +0000 (+0200) Subject: imap-acl: Add imapc_acl_get_mailbox_error X-Git-Tag: 2.3.15~16 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c90005e2fdc787b29dcbe2b340c06d2710aa6cbc;p=thirdparty%2Fdovecot%2Fcore.git imap-acl: Add imapc_acl_get_mailbox_error Allows to retrieve full mailbox error. --- diff --git a/src/plugins/imap-acl/Makefile.am b/src/plugins/imap-acl/Makefile.am index c58f34bcf4..166a6c83b7 100644 --- a/src/plugins/imap-acl/Makefile.am +++ b/src/plugins/imap-acl/Makefile.am @@ -4,6 +4,8 @@ AM_CPPFLAGS = \ -I$(top_srcdir)/src/lib-imap \ -I$(top_srcdir)/src/lib-index \ -I$(top_srcdir)/src/lib-storage \ + -I$(top_srcdir)/src/lib-storage/index \ + -I$(top_srcdir)/src/lib-storage/index/imapc \ -I$(top_srcdir)/src/imap \ -I$(top_srcdir)/src/plugins/acl diff --git a/src/plugins/imap-acl/imap-acl-plugin.c b/src/plugins/imap-acl/imap-acl-plugin.c index 5e1404b23f..04fd9750d8 100644 --- a/src/plugins/imap-acl/imap-acl-plugin.c +++ b/src/plugins/imap-acl/imap-acl-plugin.c @@ -5,6 +5,7 @@ #include "imap-quote.h" #include "imap-resp-code.h" #include "imap-commands.h" +#include "imapc-storage.h" #include "mail-storage.h" #include "mail-namespace.h" #include "mail-storage-private.h" @@ -301,6 +302,21 @@ imap_acl_write_aclobj(string_t *dest, struct acl_backend *backend, return ret; } +static const char * +imapc_acl_get_mailbox_error(struct imapc_mailbox *mbox) +{ + enum mail_error err; + const char *error = mailbox_get_last_error(&mbox->box, &err); + const char *resp_code; + string_t *str = t_str_new(128); + + if (imapc_mail_error_to_resp_text_code(err, &resp_code)) + str_printfa(str, "[%s] ", resp_code); + str_append(str, error); + + return str_c(str); +} + static bool cmd_getacl(struct client_command_context *cmd) { struct acl_backend *backend;