From dd38f2cb909b38d12bbabc702b98f742e2d44a8a Mon Sep 17 00:00:00 2001 From: Stephan Bosch Date: Mon, 4 Mar 2019 00:28:42 +0100 Subject: [PATCH] lib-lda: mail-deliver - Add support for event API. --- src/lib-lda/mail-deliver.c | 15 +++++++++++++++ src/lib-lda/mail-deliver.h | 2 ++ 2 files changed, 17 insertions(+) diff --git a/src/lib-lda/mail-deliver.c b/src/lib-lda/mail-deliver.c index 91132409e3..0aa702c55c 100644 --- a/src/lib-lda/mail-deliver.c +++ b/src/lib-lda/mail-deliver.c @@ -24,6 +24,10 @@ #define MAIL_DELIVER_STORAGE_CONTEXT(obj) \ MODULE_CONTEXT_REQUIRE(obj, mail_deliver_storage_module) +struct event_category event_category_mail_delivery = { + .name = "local-delivery", +}; + struct mail_deliver_user { union mail_user_module_context module_ctx; struct mail_deliver_context *deliver_ctx; @@ -317,10 +321,21 @@ void mail_deliver_init(struct mail_deliver_context *ctx, ctx->rcpt_user = input->rcpt_user; ctx->rcpt_default_mailbox = p_strdup(ctx->pool, input->rcpt_default_mailbox); + + ctx->event = event_create(input->event_parent); + event_add_category(ctx->event, &event_category_mail_delivery); + + if (ctx->rcpt_to != NULL) { + event_add_str(ctx->event, "rcpt_to", + smtp_address_encode(ctx->rcpt_to)); + } + smtp_params_rcpt_add_to_event(&ctx->rcpt_params, + SMTP_CAPABILITY__ORCPT, ctx->event); } void mail_deliver_deinit(struct mail_deliver_context *ctx) { + event_unref(&ctx->event); pool_unref(&ctx->pool); } diff --git a/src/lib-lda/mail-deliver.h b/src/lib-lda/mail-deliver.h index 8ff9c7a5a1..9c4902db63 100644 --- a/src/lib-lda/mail-deliver.h +++ b/src/lib-lda/mail-deliver.h @@ -24,6 +24,7 @@ struct mail_deliver_input { const struct lda_settings *set; const struct smtp_submit_settings *smtp_set; struct mail_deliver_session *session; + struct event *event_parent; unsigned int session_time_msecs; struct timeval delivery_time_started; @@ -56,6 +57,7 @@ struct mail_deliver_context { const struct lda_settings *set; const struct smtp_submit_settings *smtp_set; struct mail_deliver_session *session; + struct event *event; unsigned int session_time_msecs; struct timeval delivery_time_started; -- 2.47.3