destuser setting useless on LMTP proxy
Aki Tuomi
aki.tuomi at dovecot.fi
Mon Mar 26 10:49:24 EEST 2018
On 26.03.2018 10:42, Jan-Pieter Cornet wrote:
> I tried setting the "destuser" setting on the LMTP director as
> follows, to preserve the original envelope rcpt:
>
> protocol lmtp {
> auth_socket_path = director-userdb
> passdb {
> driver = ...
> override_fields = destuser=%{orig_user}
> }
> }
>
> The passdb driver would return the appropriate "user" for each alias.
> Suppose, for example, user1 has emails user1 at domain.tld, but also
> alias1 at domain.tld.
>
> Now, it turns out that setting the destuser *changes* the backend. It
> seems that when the passdb returns "destuser", that username is
> completely ignored and the hashing of the destuser determines the
> backend chosen.
>
> This is incorrect, the backend should be chosen based on the returned
> "user", and the "destuser" should only be used for the remote login
> (or rcpt, in case of LMTP).
>
> I'm using version 2.2.35. The problem seems to be in lmtp/commands.c,
> in client_proxy_rcpt_parse_fields, line 281-285 says:
> } else if (strcmp(key, "user") == 0 ||
> strcmp(key, "destuser") == 0) {
> /* changing the username */
> *address = value;
> } ...
>
> So it looks as if "user" and "destuser" are treated equally in the
> LMTP proxy.
>
Hi!
Thanks for reporting this, we'll take a look
Aki
More information about the dovecot
mailing list