[PATCH][CVS IMAPd 2.1] lmtp_downcase_rcpt implementation (2)

Lawrence Greenfield leg+ at andrew.cmu.edu
Mon Jan 13 16:54:39 EST 2003


   Date: Mon, 13 Jan 2003 16:48:49 -0500
   From: John Alton Tamplin <jtampli at sph.emory.edu>
[...]
   There seem to be 3 places that have to be dealt with:
    1) login
    2) message delivery
    3) mailbox names

   It seems like 1 is very localized and a trivial change in 
   auth_canonifyid (if it isn't appropriate for Kerberos, then the switch 
   could just be ignored in auth_krb*.c) .  2 is easy enough and a small 
   variant of Henrique's patch should do it. 3 is much harder, since you 
   potentially have to handle select Shared Folders/user/JTampli/Test to 
   resolve to user/jtampli/Test and similar situations.  I think it is less 
   of an issue because most clients are just going to show the user what 
   LIST/etc return (and any running altnamespace won't see them except for 
   other users that have granted permissions to one of their folders), so I 
   would be happy with a patch that solves only 1 & 2 (and in fact I will 
   probably implement it myself for local use if nobody is interested in 
   getting into the official distribution).

Well, "message delivery" and "mailbox names" are tightly
intertwined. How should I know that "leg+detail" should be delivered
to "user.leg.Detail"?

You also need to prevent two mailboxes from being created with the
same name (except for case).

There's the i18n problem: case mapping isn't trivial across lots of
languages.

Finally, we need to deal with people toggling this option on and
off. What happens if user.leg.foo and user.leg.Foo both exist, and
then the administrator turns on case-insensitivity?

I suspect any real solution would need to modify the mboxlist so that
mailbox keys are always downcased and inside the value is the case
preserved form which is returned by LIST. This isn't an easy upgrade
nor a trivial code change.

Larry





More information about the Info-cyrus mailing list