From: Timo Sirainen Date: Mon, 16 Dec 2019 11:51:50 +0000 (+0200) Subject: imap: Add client_send_error() X-Git-Tag: 2.3.10~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5e5832d98863cfa99c91df2b278a14aa9435b700;p=thirdparty%2Fdovecot%2Fcore.git imap: Add client_send_error() --- diff --git a/src/imap/imap-commands-util.c b/src/imap/imap-commands-util.c index 0a2f3543d2..5ca9330a1d 100644 --- a/src/imap/imap-commands-util.c +++ b/src/imap/imap-commands-util.c @@ -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, diff --git a/src/imap/imap-commands-util.h b/src/imap/imap-commands-util.h index c475909d17..997ed0284e 100644 --- a/src/imap/imap-commands-util.h +++ b/src/imap/imap-commands-util.h @@ -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);