From: Stephan Bosch Date: Tue, 10 Sep 2019 00:17:17 +0000 (+0200) Subject: lib-smtp: smtp-server-transaction - Create transaction using struct smtp_server_cmd_m... X-Git-Tag: 2.3.9~132 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=bc980c6c96b8e8113f14886d14d2d3a6c24d2eae;p=thirdparty%2Fdovecot%2Fcore.git lib-smtp: smtp-server-transaction - Create transaction using struct smtp_server_cmd_mail directly. Before, it used separate parameters for the individual fields, but that makes it hard to extend. --- diff --git a/src/lib-smtp/smtp-server-cmd-mail.c b/src/lib-smtp/smtp-server-cmd-mail.c index d62208f5f6..57a7c74e37 100644 --- a/src/lib-smtp/smtp-server-cmd-mail.c +++ b/src/lib-smtp/smtp-server-cmd-mail.c @@ -42,8 +42,7 @@ cmd_mail_completed(struct smtp_server_cmd_ctx *cmd, } /* success */ - conn->state.trans = smtp_server_transaction_create(conn, - data->flags, data->path, &data->params, &data->timestamp); + conn->state.trans = smtp_server_transaction_create(conn, data); } static void diff --git a/src/lib-smtp/smtp-server-private.h b/src/lib-smtp/smtp-server-private.h index 21b96843bd..e0f2d8d274 100644 --- a/src/lib-smtp/smtp-server-private.h +++ b/src/lib-smtp/smtp-server-private.h @@ -396,10 +396,7 @@ bool smtp_server_recipient_call_hooks( struct smtp_server_transaction * smtp_server_transaction_create(struct smtp_server_connection *conn, - enum smtp_server_transaction_flags flags, - const struct smtp_address *mail_from, - const struct smtp_params_mail *params, - const struct timeval *timestamp); + const struct smtp_server_cmd_mail *mail_data); void smtp_server_transaction_free(struct smtp_server_transaction **_trans); void smtp_server_transaction_add_rcpt(struct smtp_server_transaction *trans, diff --git a/src/lib-smtp/smtp-server-transaction.c b/src/lib-smtp/smtp-server-transaction.c index e3cd0e77ca..1fe6648475 100644 --- a/src/lib-smtp/smtp-server-transaction.c +++ b/src/lib-smtp/smtp-server-transaction.c @@ -27,10 +27,7 @@ smtp_server_transaction_update_event(struct smtp_server_transaction *trans) struct smtp_server_transaction * smtp_server_transaction_create(struct smtp_server_connection *conn, - enum smtp_server_transaction_flags flags, - const struct smtp_address *mail_from, - const struct smtp_params_mail *params, - const struct timeval *timestamp) + const struct smtp_server_cmd_mail *mail_data) { struct smtp_server_transaction *trans; pool_t pool; @@ -51,10 +48,10 @@ smtp_server_transaction_create(struct smtp_server_connection *conn, str_truncate(id, str_len(id)-2); /* drop trailing "==" */ trans->id = p_strdup(pool, str_c(id)); - trans->flags = flags; - trans->mail_from = smtp_address_clone(trans->pool, mail_from); - smtp_params_mail_copy(pool, &trans->params, params); - trans->timestamp = *timestamp; + trans->flags = mail_data->flags; + trans->mail_from = smtp_address_clone(trans->pool, mail_data->path); + smtp_params_mail_copy(pool, &trans->params, &mail_data->params); + trans->timestamp = mail_data->timestamp; trans->event = event_create(conn->event); smtp_server_transaction_update_event(trans);