From: Timo Sirainen Date: Tue, 4 Apr 2017 12:38:00 +0000 (+0300) Subject: imap: Add imap_client_command_get_reason() X-Git-Tag: 2.2.29.rc1~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3fb8215f2f214afb98e8ed10575841ef303aaa26;p=thirdparty%2Fdovecot%2Fcore.git imap: Add imap_client_command_get_reason() All the command -> reason string conversions now go through this function. --- diff --git a/src/imap/cmd-fetch.c b/src/imap/cmd-fetch.c index 96c2d70e59..085ddb82a9 100644 --- a/src/imap/cmd-fetch.c +++ b/src/imap/cmd-fetch.c @@ -310,7 +310,7 @@ bool cmd_fetch(struct client_command_context *cmd) return ret < 0; ctx = imap_fetch_alloc(client, cmd->pool, - t_strdup_printf("%s %s", cmd->name, cmd->args)); + imap_client_command_get_reason(cmd)); if (!fetch_parse_args(ctx, cmd, &args[1], &next_arg) || (imap_arg_get_list(next_arg, &list_arg) && diff --git a/src/imap/imap-commands-util.c b/src/imap/imap-commands-util.c index 0c52511551..81044ae602 100644 --- a/src/imap/imap-commands-util.c +++ b/src/imap/imap-commands-util.c @@ -132,11 +132,16 @@ int client_open_save_dest_box(struct client_command_context *cmd, return 0; } +const char *imap_client_command_get_reason(struct client_command_context *cmd) +{ + return cmd->args[0] == '\0' ? cmd->name : + t_strdup_printf("%s %s", cmd->name, cmd->args); +} + void imap_transaction_set_cmd_reason(struct mailbox_transaction_context *trans, struct client_command_context *cmd) { - mailbox_transaction_set_reason(trans, cmd->args[0] == '\0' ? cmd->name : - t_strdup_printf("%s %s", cmd->name, cmd->args)); + mailbox_transaction_set_reason(trans, imap_client_command_get_reason(cmd)); } const char * diff --git a/src/imap/imap-commands-util.h b/src/imap/imap-commands-util.h index 6ebd65bd8b..48f4f6be33 100644 --- a/src/imap/imap-commands-util.h +++ b/src/imap/imap-commands-util.h @@ -27,6 +27,8 @@ void imap_client_close_mailbox(struct client *client); int client_open_save_dest_box(struct client_command_context *cmd, const char *name, struct mailbox **destbox_r); +/* Returns string based in IMAP command name and parameters. */ +const char *imap_client_command_get_reason(struct client_command_context *cmd); /* Set transaction's reason to the IMAP command name and parameters. */ void imap_transaction_set_cmd_reason(struct mailbox_transaction_context *trans, struct client_command_context *cmd);