Hi Aaron,

> Wait, scratch that one moment, there was one thing I was worried about, INBOX.
> In db.c and in imapcommand.c, there are a couple of str[n?]casecmp's with
> "INBOX" and "inbox" as the parameters. 
> 
> Thomas, try using your patch and creating a mailbox called "Inbox" and "inbox"
> and see what happens. Does it fail? Does it show the same contents as "INBOX"
> does it explode DBMail badly?

I prefer not to explode dbmail that's why I checked the code where
something happens with the INBOX :-)

I only found 3 lines of code that are relevant:

716:imapcommands.c
if (strcasecmp(chunks[0], "inbox") == 0)
    strcpy(chunks[0], "INBOX");     /* make inbox uppercase */

885:imapcommands.c
/* check if there is an attempt to delete inbox */
if (strcasecmp(args[0], "inbox") == 0) {

1083:imapcommands.c
/* check if it is INBOX to be renamed */
if (strcasecmp(args[0], "inbox") == 0) {

If we leave everything as it is only INBOX is allowed, if we remove line
716 and use strcmp with INBOX for the others we allow INBOX and
mailboxes like Inbox.

I did a quick test: I inserted 'inbox' into the database. Evolution now
shows 'INBOX' and 'inbox' where 'inbox' has the content of 'INBOX'. If I
delete a mail in one box it's deleted in the other one too. New messages
are always inserted into mailbox_idnr of INBOX.
I have missed a case insensitive comparison but I can't find it at the
moment :-(

> Does the RFC say if "Inbox" would be different than "INBOX" with respect to
> message delivery? What does Cyrus do?

In Cyrus a mail folder is a folder on the disc. My 'INBOX' is:
/var/spool/cyrus/mail/t/user/thomas/
If I create mail folder 'test' it's:
/var/spool/cyrus/mail/t/user/thomas/test/
That's why Cyrus only allows subfolders below INBOX/... and the name
'INBOX' is hardcoded.


Thomas
-- 
http://www.tmueller.com for pgp key (95702B3B)

Reply via email to