From: Stephan Bosch Date: Sun, 3 Mar 2019 23:28:42 +0000 (+0100) Subject: lib-lda: mail-deliver - Add support for event API. X-Git-Tag: 2.3.9~557 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dd38f2cb909b38d12bbabc702b98f742e2d44a8a;p=thirdparty%2Fdovecot%2Fcore.git lib-lda: mail-deliver - Add support for event API. --- 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;