From: Stephan Bosch Date: Mon, 10 Jan 2022 02:53:41 +0000 (+0100) Subject: lib-smtp: smtp-client-transaction - Add smtp_client_command_mail_submit_after(). X-Git-Tag: 2.3.19~134 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ffbf4efea2335c033aa32b4f7ff526f79945f601;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: smtp-client-transaction - Add smtp_client_command_mail_submit_after(). --- diff --git a/src/lib-smtp/smtp-client-command.c b/src/lib-smtp/smtp-client-command.c index a41708d27f..9eaf76d26b 100644 --- a/src/lib-smtp/smtp-client-command.c +++ b/src/lib-smtp/smtp-client-command.c @@ -1122,14 +1122,15 @@ smtp_client_command_rset_submit(struct smtp_client_connection *conn, /* MAIL FROM: */ -#undef smtp_client_command_mail_submit +#undef smtp_client_command_mail_submit_after struct smtp_client_command * -smtp_client_command_mail_submit(struct smtp_client_connection *conn, - enum smtp_client_command_flags flags, - const struct smtp_address *from, - const struct smtp_params_mail *params, - smtp_client_command_callback_t *callback, - void *context) +smtp_client_command_mail_submit_after(struct smtp_client_connection *conn, + enum smtp_client_command_flags flags, + struct smtp_client_command *after, + const struct smtp_address *from, + const struct smtp_params_mail *params, + smtp_client_command_callback_t *callback, + void *context) { struct smtp_client_command *cmd; @@ -1161,10 +1162,24 @@ smtp_client_command_mail_submit(struct smtp_client_connection *conn, if (str_len(cmd->data) == orig_len + 1) str_truncate(cmd->data, orig_len); } - smtp_client_command_submit(cmd); + smtp_client_command_submit_after(cmd, after); return cmd; } +#undef smtp_client_command_mail_submit +struct smtp_client_command * +smtp_client_command_mail_submit(struct smtp_client_connection *conn, + enum smtp_client_command_flags flags, + const struct smtp_address *from, + const struct smtp_params_mail *params, + smtp_client_command_callback_t *callback, + void *context) +{ + return smtp_client_command_mail_submit_after(conn, flags, NULL, + from, params, + callback, context); +} + /* RCPT TO: */ #undef smtp_client_command_rcpt_submit_after diff --git a/src/lib-smtp/smtp-client-command.h b/src/lib-smtp/smtp-client-command.h index aae0a3bfb3..70dba928db 100644 --- a/src/lib-smtp/smtp-client-command.h +++ b/src/lib-smtp/smtp-client-command.h @@ -180,6 +180,22 @@ smtp_client_command_rset_submit(struct smtp_client_connection *conn, /* Send MAIL FROM:
*/ struct smtp_client_command * +smtp_client_command_mail_submit_after(struct smtp_client_connection *conn, + enum smtp_client_command_flags flags, + struct smtp_client_command *after, + const struct smtp_address *from, + const struct smtp_params_mail *params, + smtp_client_command_callback_t *callback, + void *context); +#define smtp_client_command_mail_submit_after(conn, flags, after, \ + address, params, \ + callback, context) \ + smtp_client_command_mail_submit_after(conn, flags - \ + CALLBACK_TYPECHECK(callback, void (*)( \ + const struct smtp_reply *reply, typeof(context))), \ + after, address, params, \ + (smtp_client_command_callback_t *)callback, context) +struct smtp_client_command * smtp_client_command_mail_submit(struct smtp_client_connection *conn, enum smtp_client_command_flags flags, const struct smtp_address *from,