#include "array.h"
#include "str.h"
#include "strfuncs.h"
-#include "guid.h"
-#include "base64.h"
#include "message-date.h"
#include "smtp-address.h"
#include "smtp-params.h"
struct event *event = trans->event;
event_add_str(event, "transaction_id", trans->id);
+ event_add_str(event, "session", trans->id);
event_add_str(event, "mail_from",
smtp_address_encode(trans->mail_from));
event_add_str(event, "mail_from_raw",
{
struct smtp_server_transaction *trans;
pool_t pool;
- guid_128_t guid;
- string_t *id;
/* create new transaction */
pool = pool_alloconly_create("smtp server transaction", 4096);
trans->conn = conn;
/* generate transaction ID */
- id = t_str_new(30);
- guid_128_generate(guid);
- base64_encode(guid, sizeof(guid), id);
- i_assert(str_c(id)[str_len(id)-2] == '=');
- str_truncate(id, str_len(id)-2); /* drop trailing "==" */
- trans->id = p_strdup(pool, str_c(id));
+ conn->transaction_seq++;
+ trans->id = p_strdup_printf(pool, "%s:%u", conn->session_id,
+ conn->transaction_seq);
trans->flags = mail_data->flags;
trans->mail_from = smtp_address_clone(trans->pool, mail_data->path);