]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap-acl: Add imapc_acl_get_mailbox_error
authorMarkus Valentin <markus.valentin@open-xchange.com>
Tue, 25 May 2021 10:40:55 +0000 (12:40 +0200)
committermarkus.valentin <markus.valentin@open-xchange.com>
Wed, 26 May 2021 10:15:09 +0000 (10:15 +0000)
Allows to retrieve full mailbox error.

src/plugins/imap-acl/Makefile.am
src/plugins/imap-acl/imap-acl-plugin.c

index c58f34bcf4d7d05eebefc43fbbb5a1a4bb3151db..166a6c83b7912ba161b598a3bf3d8d98de15d6d5 100644 (file)
@@ -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
 
index 5e1404b23f80f29e26024f5f43eb44a8d2ab8f44..04fd9750d8e13f278148604678910637bfef5ea3 100644 (file)
@@ -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;