Skip to content

Commit

Permalink
lib-smtp: server: Add RCPT parameters directly in smtp_server_transac…
Browse files Browse the repository at this point in the history
…tion_add_rcpt().

This makes more sense. Before, these were added to the recipient in
smtp-server-cmd-rcpt.c, after the recipient was added.
  • Loading branch information
stephanbosch authored and villesavolainen committed Mar 6, 2018
1 parent af7fec1 commit e9afe28
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 6 deletions.
6 changes: 2 additions & 4 deletions src/lib-smtp/smtp-server-cmd-rcpt.c
Expand Up @@ -47,7 +47,6 @@ static void cmd_rcpt_completed(struct smtp_server_cmd_ctx *cmd)
(struct smtp_server_cmd_rcpt *)command->data;
struct smtp_server_transaction *trans = conn->state.trans;
struct smtp_server_recipient *rcpt;
pool_t pool;

conn->state.pending_rcpt_cmds--;

Expand All @@ -56,10 +55,9 @@ static void cmd_rcpt_completed(struct smtp_server_cmd_ctx *cmd)
return;

/* success */
pool = trans->pool;
rcpt = smtp_server_transaction_add_rcpt(trans, data->path);
rcpt = smtp_server_transaction_add_rcpt(trans, data->path,
&data->params);
rcpt->context = data->trans_context;
smtp_params_rcpt_copy(pool, &rcpt->params, &data->params);

if (data->hook_finished != NULL) {
data->hook_finished(cmd, trans, rcpt,
Expand Down
3 changes: 2 additions & 1 deletion src/lib-smtp/smtp-server-private.h
Expand Up @@ -344,7 +344,8 @@ void smtp_server_transaction_free(struct smtp_server_transaction **_trans);

struct smtp_server_recipient *
smtp_server_transaction_add_rcpt(struct smtp_server_transaction *trans,
const struct smtp_address *rcpt_to);
const struct smtp_address *rcpt_to,
const struct smtp_params_rcpt *params);
bool smtp_server_transaction_has_rcpt(struct smtp_server_transaction *trans);
unsigned int
smtp_server_transaction_rcpt_count(struct smtp_server_transaction *trans);
Expand Down
4 changes: 3 additions & 1 deletion src/lib-smtp/smtp-server-transaction.c
Expand Up @@ -53,12 +53,14 @@ void smtp_server_transaction_free(struct smtp_server_transaction **_trans)

struct smtp_server_recipient *
smtp_server_transaction_add_rcpt(struct smtp_server_transaction *trans,
const struct smtp_address *rcpt_to)
const struct smtp_address *rcpt_to,
const struct smtp_params_rcpt *params)
{
struct smtp_server_recipient *rcpt;

rcpt = p_new(trans->pool, struct smtp_server_recipient, 1);
rcpt->path = smtp_address_clone(trans->pool, rcpt_to);
smtp_params_rcpt_copy(trans->pool, &rcpt->params, params);

if (!array_is_created(&trans->rcpt_to))
p_array_init(&trans->rcpt_to, trans->pool, 8);
Expand Down

0 comments on commit e9afe28

Please sign in to comment.