Re: [Dovecot] rc7 bug? [Was: deliver LDA and INBOX location] (fwd)
Anyone had any thoughts on the item below?
If the problem is with my config, I'd like to be guided towards how I might resolve it.
If it is a bug in rc7, it would be good to fix it, and I'd be happy to beta-test.
--
: David Lee I.T. Service : : Senior Systems Programmer Computer Centre : : Durham University : : http://www.dur.ac.uk/t.d.lee/ South Road : : Durham DH1 3LE : : Phone: +44 191 334 2752 U.K. :
---------- Forwarded message ---------- Date: Fri, 1 Sep 2006 10:22:20 +0100 (BST) From: David Lee t.d.lee@durham.ac.uk To: dovecot@dovecot.org Subject: Re: [Dovecot] rc7 bug? [Was: deliver LDA and INBOX location]
On Thu, 31 Aug 2006, David Lee wrote:
[...] We have a well-established different convention which subdivides this, based on the last two digits of the uid: "/var/spool/mail/12/fred" (for fred's uid as something ending "[...]12"). This is working nicely with dovecot, using the new rc7 functionality: default_mail_env = mbox:%h:INBOX=/var/spool/mail/%-2.02i/%u:[...]
I am now trying to get sendmail to use dovecot's "deliver" as the LDA, [...] The main problem is that, according to the log file, the delivery attempt is being made to an INBOX "/var/spool/mail//fred". That is, it seems to be ignoring the "default_mail_env" setting.
Have I missed something in the wiki, or is this a bug of some sort?
I have looked deeper at my problem (abov). It seems to be a bug in rc7, and probably an "always been there" bug.
I sprinked a few "i_info(...)" diagnostics into "deliver.c" where it does 'getenv("MAIL")' and 'getenv("DEFAULT_MAIL_ENV")'. It shows that these are being successfully read from the 'dovecot.conf' file (good).
But, crucially, it seems that the "%" variable substitution is incomplete:
line 483: MAIL [null] line 486: MAIL mbox:%h:INBOX=/var/spool/mail/%-2.02i/%u:INDEX=/var/spool/mail/indexes/%d/%n line 492: MAIL mbox:/home/fred:INBOX=/var/spool/mail//fred:INDEX=/var/spool/mail/indexes//fred
(Aside: The act of inserting the 'i_info' will have knocked the line numbers adrift by a couple. But it shows what is (not) happening.)
Note in the "INBOX=..." clause that while "%u" and "%h" have been successfully expanded (good), the "%i" variant (UNIX uid) has failed to get expanded (bad).
I'm new to dovecot, so am on a steep learning curve and am unfamiliar with the source code and dovecot's principles. So it would probably take me ages to work out a suitable patch, and even then it might be inappropriate.
But hopefully the above information is sufficient and suitable for someone (Timo?) to investigate more expertly and fully.
If someone can produce a patch (or hints of what to patch and where) I would certainly intend to test it and work on it for you.
Hope that helps. Many thanks in advance.
--
: David Lee I.T. Service : : Senior Systems Programmer Computer Centre : : Durham University : : http://www.dur.ac.uk/t.d.lee/ South Road : : Durham DH1 3LE : : Phone: +44 191 334 2752 U.K. :
Quoting David Lee t.d.lee@durham.ac.uk:
Anyone had any thoughts on the item below?
I see you have stumbled upon the same problem that prompted me to
subscribe to this list. I'm running rc7 as well and the deliver LDA is
ignoring default_mail_env. As a workaround I have now explicitly
specified each user's home directory in userdb, but it would be
cleaner if the default could be used.
I didn't look far into the dovecot code, but from what I peeked it
looks like deliver/auth-client.c bails out at function
auth_parse_input, if it doesn't receive a home directory from the
userdb. No provisions there for checking default_mail_env. Or maybe
I'm looking at the wrong place..
Tapio
On Tue, 5 Sep 2006, Tapio Sokura wrote:
Quoting David Lee t.d.lee@durham.ac.uk:
Anyone had any thoughts on the item below?
I see you have stumbled upon the same problem that prompted me to subscribe to this list. I'm running rc7 as well and the deliver LDA is ignoring default_mail_env. As a workaround I have now explicitly specified each user's home directory in userdb, but it would be cleaner if the default could be used.
I didn't look far into the dovecot code, but from what I peeked it looks like deliver/auth-client.c bails out at function auth_parse_input, if it doesn't receive a home directory from the userdb. No provisions there for checking default_mail_env. Or maybe I'm looking at the wrong place..
Ah! Our emails cross...
I have just drafted a patch to address the issue of "%i" being ignored. The patch is re-attached here.
You mention home directories; my issue was uid (%i). You also mention default_mail_env being ignored; for me it seemed to be "mostly, but not entirely, OK".
So our issues may be somewhat different. Nevertheless the patch might give an idea of the sort of thing that might be relevant.
DISCLAIMER: I'm a newcomer to dovecot. This patch is completely unverified (at present) by anyone else, and it might diverge from established dovecot 'best practice' principles. Own risk, etc.
--
: David Lee I.T. Service : : Senior Systems Programmer Computer Centre : : Durham University : : http://www.dur.ac.uk/t.d.lee/ South Road : : Durham DH1 3LE : : Phone: +44 191 334 2752 U.K. :
On Tue, 5 Sep 2006, David Lee wrote:
Anyone had any thoughts on the item below? [see earlier in thread]
If the problem is with my config, I'd like to be guided towards how I might resolve it.
If it is a bug in rc7, it would be good to fix it, and I'd be happy to beta-test.
BUG in rc7 (and probably from much earlier).
The LDA 'deliver' fails to honour any uid (%i) setting in dovecot.conf. So delivery and reading happen in different places if 'default_mail_env' uses a '%i' variant. Clearly incorrect behaviour.
Attached is a draft of a patch which fixes the problem. Please could the patch be reviewed and, in some form, applied?
Thanks.
--
: David Lee I.T. Service : : Senior Systems Programmer Computer Centre : : Durham University : : http://www.dur.ac.uk/t.d.lee/ South Road : : Durham DH1 3LE : : Phone: +44 191 334 2752 U.K. :
participants (2)
-
David Lee
-
Tapio Sokura