Mercurial > dovecot > core-2.2
changeset 12140:942bb9258e49
lda: If mail_debug=yes and no -d parameter is given, log where username is taken from.
author | Timo Sirainen <tss@iki.fi> |
---|---|
date | Tue, 21 Sep 2010 14:04:22 +0100 |
parents | af45e2f36059 |
children | dc98970aef85 |
files | src/lda/main.c |
diffstat | 1 files changed, 8 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/lda/main.c Mon Sep 20 19:06:26 2010 +0100 +++ b/src/lda/main.c Tue Sep 21 14:04:22 2010 +0100 @@ -221,6 +221,7 @@ struct istream *input; struct mailbox_transaction_context *t; struct mailbox_header_lookup_ctx *headers_ctx; + const char *user_source = ""; void **sets; uid_t process_euid; bool stderr_rejection = FALSE; @@ -319,10 +320,12 @@ home = getenv("HOME"); if (user != NULL && home != NULL) { /* no need for a pw lookup */ + user_source = "USER environment"; } else if ((pw = getpwuid(process_euid)) != NULL) { user = t_strdup(pw->pw_name); if (home == NULL) env_put(t_strconcat("HOME=", pw->pw_dir, NULL)); + user_source = "passwd lookup for process euid"; } else if (user == NULL) { i_fatal_status(EX_USAGE, "Couldn't lookup our username (uid=%s)", @@ -356,6 +359,11 @@ #endif ctx.set = mail_storage_service_user_get_set(service_user)[1]; + if (ctx.dest_user->mail_debug && *user_source != '\0') { + i_debug("userdb lookup skipped, username taken from %s", + user_source); + } + /* create a separate mail user for the internal namespace */ sets = master_service_settings_get_others(master_service); raw_mail_user = mail_user_alloc(user, ctx.dest_user->set_info, sets[0]);