]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
imap: Add client_send_error()
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Mon, 16 Dec 2019 11:51:50 +0000 (13:51 +0200)
committertimo.sirainen <timo.sirainen@open-xchange.com>
Thu, 6 Feb 2020 16:14:32 +0000 (16:14 +0000)
src/imap/imap-commands-util.c
src/imap/imap-commands-util.h

index 0a2f3543d22239a5d762a7e72043e92257bfaafb..5ca9330a1d22d5e7b8bc0f67a101e8279de132ac 100644 (file)
@@ -190,6 +190,14 @@ imap_get_error_string(struct client_command_context *cmd,
                return t_strdup_printf("NO [%s] %s", resp_code, error_string);
 }
 
+void client_send_error(struct client_command_context *cmd,
+                      const char *error_string, enum mail_error error)
+{
+       client_send_tagline(cmd, imap_get_error_string(cmd, error_string,
+                                                      error));
+       client_disconnect_if_inconsistent(cmd->client);
+}
+
 void client_send_list_error(struct client_command_context *cmd,
                            struct mailbox_list *list)
 {
@@ -224,10 +232,7 @@ void client_send_storage_error(struct client_command_context *cmd,
        enum mail_error error;
 
        error_string = mail_storage_get_last_error(storage, &error);
-       client_send_tagline(cmd, imap_get_error_string(cmd, error_string,
-                                                      error));
-
-       client_disconnect_if_inconsistent(cmd->client);
+       client_send_error(cmd, error_string, error);
 }
 
 void client_send_untagged_storage_error(struct client *client,
index c475909d17c9a5dc353e697d103a67ee9a4b6819..997ed0284e97da14b702a804489ff265a6ce609c 100644 (file)
@@ -38,6 +38,9 @@ imap_get_error_string(struct client_command_context *cmd,
 
 void client_disconnect_if_inconsistent(struct client *client);
 
+/* Send an explicit error message to client. */
+void client_send_error(struct client_command_context *cmd,
+                      const char *error_string, enum mail_error error);
 /* Send last mailbox list error message to client. */
 void client_send_list_error(struct client_command_context *cmd,
                            struct mailbox_list *list);