]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-lda: Renamed struct mail_deliver_context fields for consistency with lib-smtp.
authorStephan Bosch <stephan.bosch@dovecot.fi>
Wed, 2 Nov 2016 23:20:55 +0000 (00:20 +0100)
committerTimo Sirainen <timo.sirainen@dovecot.fi>
Sun, 26 Nov 2017 20:30:01 +0000 (22:30 +0200)
New fields are added in subsequent commits.

src/lda/main.c
src/lib-lda/mail-deliver.c
src/lib-lda/mail-deliver.h
src/lib-lda/mail-send.c
src/lmtp/commands.c

index 847861bdcdd151d1f9ceae5b26570b964902cbcd..a7f2f9d7a5f683717df2a4ed59dd60db8ccb725a 100644 (file)
@@ -89,7 +89,7 @@ static int seekable_fd_callback(const char **path_r, void *context)
        int fd;
 
        path = t_str_new(128);
-       mail_user_set_get_temp_prefix(path, ctx->dest_user->set);
+       mail_user_set_get_temp_prefix(path, ctx->rcpt_user->set);
        fd = safe_mkstemp(path, 0600, (uid_t)-1, (gid_t)-1);
        if (fd == -1) {
                i_error("safe_mkstemp(%s) failed: %m", str_c(path));
@@ -142,10 +142,10 @@ create_raw_stream(struct mail_deliver_context *ctx,
                }
        }
 
-       if (sender != NULL && ctx->src_envelope_sender == NULL) {
+       if (sender != NULL && ctx->mail_from == NULL) {
                /* use the envelope sender from From_-line, but only if it
                   hasn't been specified with -f already. */
-               ctx->src_envelope_sender = p_strdup(ctx->pool, sender);
+               ctx->mail_from = p_strdup(ctx->pool, sender);
        }
        i_free(sender);
 
@@ -180,10 +180,10 @@ lda_raw_mail_open(struct mail_deliver_context *ctx, const char *path)
 
        sets = master_service_settings_get_others(master_service);
        raw_mail_user =
-               raw_storage_create_from_set(ctx->dest_user->set_info, sets[0]);
+               raw_storage_create_from_set(ctx->rcpt_user->set_info, sets[0]);
 
-       envelope_sender = ctx->src_envelope_sender != NULL ?
-               ctx->src_envelope_sender : DEFAULT_ENVELOPE_SENDER;
+       envelope_sender = ctx->mail_from != NULL ?
+               ctx->mail_from : DEFAULT_ENVELOPE_SENDER;
        if (path == NULL) {
                input = create_raw_stream(ctx, 0, &mtime);
                i_stream_set_name(input, "stdin");
@@ -209,27 +209,27 @@ lda_raw_mail_open(struct mail_deliver_context *ctx, const char *path)
 }
 
 static void
-lda_set_dest_addr(struct mail_deliver_context *ctx, const char *user,
+lda_set_rcpt_orig_to(struct mail_deliver_context *ctx, const char *user,
                  const char *destaddr_source)
 {
-       if (ctx->dest_addr == NULL &&
+       if (ctx->rcpt_orig_to == NULL &&
            *ctx->set->lda_original_recipient_header != '\0') {
-               ctx->dest_addr = mail_deliver_get_address(ctx->src_mail,
+               ctx->rcpt_orig_to = mail_deliver_get_address(ctx->src_mail,
                                        ctx->set->lda_original_recipient_header);
                destaddr_source = t_strconcat(
                        ctx->set->lda_original_recipient_header, " header", NULL);
        }
-       if (ctx->dest_addr == NULL) {
-               ctx->dest_addr = strchr(user, '@') != NULL ? user :
+       if (ctx->rcpt_orig_to == NULL) {
+               ctx->rcpt_orig_to = strchr(user, '@') != NULL ? user :
                        t_strconcat(user, "@", ctx->set->hostname, NULL);
                destaddr_source = "user@hostname";
        }
-       if (ctx->final_dest_addr == NULL)
-               ctx->final_dest_addr = ctx->dest_addr;
+       if (ctx->rcpt_to == NULL)
+               ctx->rcpt_to = ctx->rcpt_orig_to;
 
-       if (ctx->dest_user->mail_debug) {
+       if (ctx->rcpt_user->mail_debug) {
                i_debug("Destination address: %s (source: %s)",
-                       ctx->dest_addr, destaddr_source);
+                       ctx->rcpt_orig_to, destaddr_source);
        }
 }
 
@@ -317,7 +317,7 @@ int main(int argc, char *argv[])
        i_zero(&ctx);
        ctx.session = mail_deliver_session_init();
        ctx.pool = ctx.session->pool;
-       ctx.dest_mailbox_name = "INBOX";
+       ctx.rcpt_default_mailbox = "INBOX";
        path = NULL;
 
        user = getenv("USER");
@@ -325,7 +325,7 @@ int main(int argc, char *argv[])
                switch (c) {
                case 'a':
                        /* original recipient address */
-                       ctx.dest_addr = optarg;
+                       ctx.rcpt_orig_to = optarg;
                        destaddr_source = "-a parameter";
                        break;
                case 'd':
@@ -338,7 +338,7 @@ int main(int argc, char *argv[])
                        break;
                case 'f':
                        /* envelope sender address */
-                       ctx.src_envelope_sender =
+                       ctx.mail_from =
                                p_strdup(ctx.pool, address_sanitize(optarg));
                        break;
                case 'm':
@@ -350,7 +350,7 @@ int main(int argc, char *argv[])
                                        i_fatal("Mailbox name not UTF-8: %s",
                                                optarg);
                                }
-                               ctx.dest_mailbox_name = optarg;
+                               ctx.rcpt_default_mailbox = optarg;
                        } T_END;
                        break;
                case 'p':
@@ -362,7 +362,7 @@ int main(int argc, char *argv[])
                        break;
                case 'r':
                        /* final recipient address */
-                       ctx.final_dest_addr = optarg;
+                       ctx.rcpt_to = optarg;
                        break;
                default:
                        print_help();
@@ -419,7 +419,7 @@ int main(int argc, char *argv[])
           _lookup() and _next(), but don't bother) */
        ctx.delivery_time_started = ioloop_timeval;
        ret = mail_storage_service_lookup_next(storage_service, &service_input,
-                                              &service_user, &ctx.dest_user,
+                                              &service_user, &ctx.rcpt_user,
                                               &errstr);
        if (ret <= 0) {
                if (ret < 0)
@@ -430,17 +430,17 @@ int main(int argc, char *argv[])
 #ifdef SIGXFSZ
         lib_signals_ignore(SIGXFSZ, TRUE);
 #endif
-       var_table = mail_user_var_expand_table(ctx.dest_user);
+       var_table = mail_user_var_expand_table(ctx.rcpt_user);
        smtp_set = mail_storage_service_user_get_set(service_user)[1];
        lda_set = mail_storage_service_user_get_set(service_user)[2];
        ret = settings_var_expand(
                &lda_setting_parser_info,
-               lda_set, ctx.dest_user->pool, var_table,
+               lda_set, ctx.rcpt_user->pool, var_table,
                &errstr);
        if (ret > 0) {
                ret = settings_var_expand(
                        &smtp_submit_setting_parser_info,
-                       smtp_set, ctx.dest_user->pool, var_table,
+                       smtp_set, ctx.rcpt_user->pool, var_table,
                        &errstr);
        }
        if (ret <= 0)
@@ -448,13 +448,13 @@ int main(int argc, char *argv[])
        ctx.set = lda_set;
        ctx.smtp_set = smtp_set;
 
-       if (ctx.dest_user->mail_debug && *user_source != '\0') {
+       if (ctx.rcpt_user->mail_debug && *user_source != '\0') {
                i_debug("userdb lookup skipped, username taken from %s",
                        user_source);
        }
 
        ctx.src_mail = lda_raw_mail_open(&ctx, path);
-       lda_set_dest_addr(&ctx, user, destaddr_source);
+       lda_set_rcpt_orig_to(&ctx, user, destaddr_source);
 
        if (mail_deliver(&ctx, &storage) < 0) {
                if (ctx.tempfail_error != NULL) {
@@ -506,7 +506,7 @@ int main(int argc, char *argv[])
                mailbox_free(&box);
        }
 
-       mail_user_unref(&ctx.dest_user);
+       mail_user_unref(&ctx.rcpt_user);
        mail_deliver_session_deinit(&ctx.session);
 
        mail_storage_service_user_unref(&service_user);
index 1b096fb5a43bf2870bcd117e0fe1986b7ad0da8a..734a41403d85204dbcc7c33680dc09525e0fc26b 100644 (file)
@@ -149,7 +149,7 @@ mail_deliver_ctx_get_log_var_expand_table(struct mail_deliver_context *ctx,
                { 'w', dec2str(ctx->cache->vsize), "vsize" },
                { '\0', dec2str(delivery_time_msecs), "delivery_time" },
                { '\0', dec2str(ctx->session_time_msecs), "session_time" },
-               { '\0', ctx->dest_addr, "to_envelope" },
+               { '\0', ctx->rcpt_orig_to, "to_envelope" },
                { '\0', ctx->cache->storage_id, "storage_id" },
                { '\0', NULL, NULL }
        };
@@ -316,12 +316,12 @@ int mail_deliver_save(struct mail_deliver_context *ctx, const char *mailbox,
 
        i_assert(ctx->dest_mail == NULL);
 
-       default_save = strcmp(mailbox, ctx->dest_mailbox_name) == 0;
+       default_save = strcmp(mailbox, ctx->rcpt_default_mailbox) == 0;
        if (default_save)
                ctx->tried_default_save = TRUE;
 
        i_zero(&open_ctx);
-       open_ctx.user = ctx->dest_user;
+       open_ctx.user = ctx->rcpt_user;
        open_ctx.lda_mailbox_autocreate = ctx->set->lda_mailbox_autocreate;
        open_ctx.lda_mailbox_autosubscribe = ctx->set->lda_mailbox_autosubscribe;
 
@@ -346,8 +346,8 @@ int mail_deliver_save(struct mail_deliver_context *ctx, const char *mailbox,
        kw = str_array_length(keywords) == 0 ? NULL :
                mailbox_keywords_create_valid(box, keywords);
        save_ctx = mailbox_save_alloc(t);
-       if (ctx->src_envelope_sender != NULL)
-               mailbox_save_set_from_envelope(save_ctx, ctx->src_envelope_sender);
+       if (ctx->mail_from != NULL)
+               mailbox_save_set_from_envelope(save_ctx, ctx->mail_from);
        mailbox_save_set_flags(save_ctx, flags, kw);
 
        headers_ctx = mailbox_header_lookup_init(box, lda_log_wanted_headers);
@@ -400,8 +400,8 @@ int mail_deliver_save(struct mail_deliver_context *ctx, const char *mailbox,
 
 const char *mail_deliver_get_return_address(struct mail_deliver_context *ctx)
 {
-       if (ctx->src_envelope_sender != NULL)
-               return ctx->src_envelope_sender;
+       if (ctx->mail_from != NULL)
+               return ctx->mail_from;
 
        return mail_deliver_get_address(ctx->src_mail, "Return-Path");
 }
@@ -409,7 +409,7 @@ const char *mail_deliver_get_return_address(struct mail_deliver_context *ctx)
 const char *mail_deliver_get_new_message_id(struct mail_deliver_context *ctx)
 {
        static int count = 0;
-       struct mail_user *user = ctx->dest_user;
+       struct mail_user *user = ctx->rcpt_user;
        const struct mail_storage_settings *mail_set =
                mail_user_set_get_storage_set(user);
 
@@ -437,7 +437,7 @@ int mail_deliver(struct mail_deliver_context *ctx,
                 struct mail_storage **storage_r)
 {
        struct mail_deliver_user *muser =
-               MAIL_DELIVER_USER_CONTEXT(ctx->dest_user);
+               MAIL_DELIVER_USER_CONTEXT(ctx->rcpt_user);
        int ret;
 
        i_assert(muser->deliver_ctx == NULL);
@@ -450,7 +450,7 @@ int mail_deliver(struct mail_deliver_context *ctx,
        if (deliver_mail == NULL)
                ret = -1;
        else {
-               ctx->dup_db = mail_duplicate_db_init(ctx->dest_user,
+               ctx->dup_db = mail_duplicate_db_init(ctx->rcpt_user,
                                                     DUPLICATE_DB_NAME);
                if (deliver_mail(ctx, storage_r) <= 0) {
                        /* if message was saved, don't bounce it even though
@@ -469,14 +469,14 @@ int mail_deliver(struct mail_deliver_context *ctx,
 
        if (ret < 0 && !ctx->tried_default_save) {
                /* plugins didn't handle this. save into the default mailbox. */
-               ret = mail_deliver_save(ctx, ctx->dest_mailbox_name, 0, NULL,
+               ret = mail_deliver_save(ctx, ctx->rcpt_default_mailbox, 0, NULL,
                                        storage_r);
                if (ret < 0 && mail_deliver_is_tempfailed(ctx, *storage_r)) {
                        muser->deliver_ctx = NULL;
                        return -1;
                }
        }
-       if (ret < 0 && strcasecmp(ctx->dest_mailbox_name, "INBOX") != 0) {
+       if (ret < 0 && strcasecmp(ctx->rcpt_default_mailbox, "INBOX") != 0) {
                /* still didn't work. try once more to save it
                   to INBOX. */
                ret = mail_deliver_save(ctx, "INBOX", 0, NULL, storage_r);
index 15ff62a21fbf17c9103f750148600dd37ac847d6..299b3aea438f1b2621f8305e1d387ed683e1059d 100644 (file)
@@ -33,18 +33,19 @@ struct mail_deliver_context {
        const char *session_id;
        /* Mail to save */
        struct mail *src_mail;
+
        /* Envelope sender, if known. */
-       const char *src_envelope_sender;
+       const char *mail_from;
 
+       /* Envelope recipient (final recipient) */
+       const char *rcpt_to;
+       /* Envelope recipient (original recipient) */
+       const char *rcpt_orig_to;
        /* Destination user */
-       struct mail_user *dest_user;
-       /* Original recipient address */
-       const char *dest_addr;
-       /* Final recipient address (typically same as dest_addr) */
-       const char *final_dest_addr;
+       struct mail_user *rcpt_user;
        /* Mailbox where mail should be saved, unless e.g. Sieve does
           something to it. */
-       const char *dest_mailbox_name;
+       const char *rcpt_default_mailbox;
 
        /* Filled with destination mail, if save_dest_mail=TRUE.
           The caller must free the mail, its transaction and close
index 08f51ad8525ecbe07478fb7f9301c39f8f7e3328..9cd427db4584543d249d3928c97190214fa7585e 100644 (file)
@@ -46,7 +46,7 @@ get_var_expand_table(struct mail *mail, const char *reason,
 int mail_send_rejection(struct mail_deliver_context *ctx, const char *recipient,
                        const char *reason)
 {
-       struct mail_user *user = ctx->dest_user;
+       struct mail_user *user = ctx->rcpt_user;
        const struct mail_storage_settings *mail_set =
                mail_user_set_get_storage_set(user);
        struct mail *mail = ctx->src_mail;
index 1df87743fe8cc4113f89a7235ca20270085500b4..4f1460542858ae2b1d91701ddf5485b0e4946f19 100644 (file)
@@ -833,28 +833,28 @@ client_deliver(struct client *client, const struct mail_recipient *rcpt,
        dctx.smtp_set = smtp_set;
        dctx.session_id = rcpt->session_id;
        dctx.src_mail = src_mail;
-       dctx.src_envelope_sender = client->state.mail_from;
-       dctx.dest_user = dest_user;
+       dctx.mail_from = client->state.mail_from;
+       dctx.rcpt_user = dest_user;
        dctx.session_time_msecs =
                timeval_diff_msecs(&client->state.data_end_timeval,
                                   &client->state.mail_from_timeval);
        dctx.delivery_time_started = delivery_time_started;
 
-       if (orcpt_get_valid_rfc822(rcpt->params.dsn_orcpt, &dctx.dest_addr)) {
+       if (orcpt_get_valid_rfc822(rcpt->params.dsn_orcpt, &dctx.rcpt_orig_to)) {
                /* used ORCPT */
        } else if (*dctx.set->lda_original_recipient_header != '\0') {
-               dctx.dest_addr = mail_deliver_get_address(src_mail,
+               dctx.rcpt_orig_to = mail_deliver_get_address(src_mail,
                                dctx.set->lda_original_recipient_header);
        }
-       if (dctx.dest_addr == NULL)
-               dctx.dest_addr = rcpt->address;
-       dctx.final_dest_addr = rcpt->address;
+       if (dctx.rcpt_orig_to == NULL)
+               dctx.rcpt_orig_to = rcpt->address;
+       dctx.rcpt_to = rcpt->address;
        if (*rcpt->detail == '\0' ||
            !client->lmtp_set->lmtp_save_to_detail_mailbox)
-               dctx.dest_mailbox_name = "INBOX";
+               dctx.rcpt_default_mailbox = "INBOX";
        else {
                ns = mail_namespace_find_inbox(dest_user->namespaces);
-               dctx.dest_mailbox_name =
+               dctx.rcpt_default_mailbox =
                        t_strconcat(ns->prefix, rcpt->detail, NULL);
        }