]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-smtp: server-transaction - Simplify/clarify transaction ID
authorTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 1 Feb 2022 13:35:05 +0000 (14:35 +0100)
committerTimo Sirainen <timo.sirainen@open-xchange.com>
Tue, 1 Feb 2022 15:00:43 +0000 (16:00 +0100)
The transaction ID is the session ID followed by an increasing transaction
count (number of MAIL commands) in the SMTP server connection. Clarify
this by adding 'T' letter before the counter. Also don't add the counter
suffix at all for the first session, since most sessions only have a
single transaction.

src/lib-smtp/smtp-server-transaction.c

index 29bac5375f9207c838c39663a88740e7595c6479..7d9b8394c89ca0b2c4ae7d577d74909f3b1c3396 100644 (file)
@@ -40,9 +40,12 @@ smtp_server_transaction_create(struct smtp_server_connection *conn,
        trans->conn = conn;
 
        /* generate transaction ID */
-       conn->transaction_seq++;
-       trans->id = p_strdup_printf(pool, "%s:%u", conn->session_id,
-                                   conn->transaction_seq);
+       if (conn->transaction_seq++ == 0)
+               trans->id = conn->session_id;
+       else {
+               trans->id = p_strdup_printf(pool, "%s:T%u", conn->session_id,
+                                           conn->transaction_seq);
+       }
 
        trans->flags = mail_data->flags;
        trans->mail_from = smtp_address_clone(trans->pool, mail_data->path);