]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: smtp-server-transaction - Create transaction using struct smtp_server_cmd_m...
authorStephan Bosch <stephan.bosch@open-xchange.com>
Tue, 10 Sep 2019 00:17:17 +0000 (02:17 +0200)
committerStephan Bosch <stephan.bosch@open-xchange.com>
Wed, 2 Oct 2019 12:32:11 +0000 (14:32 +0200)
Before, it used separate parameters for the individual fields, but that makes it
hard to extend.

src/lib-smtp/smtp-server-cmd-mail.c
src/lib-smtp/smtp-server-private.h
src/lib-smtp/smtp-server-transaction.c

index d62208f5f60adb6d58be73451694dc66dc37d57f..57a7c74e37efb6bf28fa983c09cb49b84776e8ca 100644 (file)
@@ -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
index 21b96843bd69a235a2efe23207326470d9dea109..e0f2d8d27410ffaa33f66c578bb326345f802ede 100644 (file)
@@ -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,
index e3cd0e77ca1d446c594c8783aaef7797ef129e29..1fe66484752ba9b607711cae7e2cb40923e56ff6 100644 (file)
@@ -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);