Skip to content

Commit

Permalink
lib-smtp: smtp-server - Call transaction callbacks from transaction o…
Browse files Browse the repository at this point in the history
…bject functions.
  • Loading branch information
stephanbosch committed Mar 2, 2019
1 parent 6f2d6a3 commit 480483c
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 13 deletions.
6 changes: 0 additions & 6 deletions src/lib-smtp/smtp-server-cmd-mail.c
Expand Up @@ -44,12 +44,6 @@ 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);

if (conn->callbacks != NULL &&
conn->callbacks->conn_trans_start != NULL) {
conn->callbacks->conn_trans_start(conn->context,
conn->state.trans);
}
}

static void
Expand Down
8 changes: 1 addition & 7 deletions src/lib-smtp/smtp-server-connection.c
Expand Up @@ -1325,14 +1325,8 @@ void smtp_server_connection_reset_state(struct smtp_server_connection *conn)
{
e_debug(conn->event, "Connection state reset");

if (conn->state.trans != NULL) {
if (conn->callbacks != NULL &&
conn->callbacks->conn_trans_free != NULL) {
conn->callbacks->conn_trans_free(conn->context,
conn->state.trans);
}
if (conn->state.trans != NULL)
smtp_server_transaction_free(&conn->state.trans);
}

/* RFC 3030, Section 2:
The RSET command, when issued after the first BDAT and before the
Expand Down
9 changes: 9 additions & 0 deletions src/lib-smtp/smtp-server-transaction.c
Expand Up @@ -61,14 +61,23 @@ smtp_server_transaction_create(struct smtp_server_connection *conn,
trans->event = event_create(conn->event);
smtp_server_transaction_update_event(trans);

if (conn->callbacks != NULL &&
conn->callbacks->conn_trans_start != NULL)
conn->callbacks->conn_trans_start(conn->context, trans);

return trans;
}

void smtp_server_transaction_free(struct smtp_server_transaction **_trans)
{
struct smtp_server_transaction *trans = *_trans;
struct smtp_server_connection *conn = trans->conn;
struct smtp_server_recipient **rcptp;

if (conn->callbacks != NULL &&
conn->callbacks->conn_trans_free != NULL)
conn->callbacks->conn_trans_free(conn->context, trans);

if (array_is_created(&trans->rcpt_to)) {
array_foreach_modifiable(&trans->rcpt_to, rcptp)
smtp_server_recipient_destroy(rcptp);
Expand Down

0 comments on commit 480483c

Please sign in to comment.