Could not complete request over quota errors

John Wade jwade at
Wed Aug 6 00:07:39 EDT 2003

Hi Christian,

There is no particular reason why you could not use this with 
unixhierarchysep, just substitute the  "/"  (slash) for the "."(period) 
in the substring function.  Note that this was tested in 2.0.16, the 
exact location in index.c might be different in later versions.   Also 
check the capitalization and spelling your imap clients use for the 
Trash folder name and adjust as appropriate.    

The advantage of this hack over the infinite Trash quota is that 
overquota users are much more limited.    With an infinite trash quota, 
many folks would soon learn that they could save as much as they wanted 
to permanently in their Trash folder.    With my hack, you can copy to 
trash while over quota and fill it up as large as you want, but as long 
as the INBOX and all the subfolders in its quota root ( including Trash 
) are overquota, then no new messages will be delivered and you will be 
unable to copy messages to anywhere other than Trash.   Practically this 
means that only truly malicious users could/would abuse the system, 
users who legitimately want to get mail will have to go under quota to 
continue to receive messages.

I made one other change to the (ultimately to imap_err.c) 
 to modify the over quota error message to read:   "Mailbox is over 
quota. Delete some messages and empty Trash"   This helps users identify 
what to do when overquota.

Truthfully, this is not a perfect implementation since it would allow 
over quota users to copy  to any folder that contains the string 
".Trash" in it   (for example:  INBOX.Trashme  
etc.)    Someone with more C  library experience could tell me what the 
appropriate string function to use is.   I just have gotten too spoiled 
playing with strings in perl.

Hope this helps,

Christian Schulte wrote:

>Am Mittwoch, 6. August 2003 01:12 schrieb John Wade:
>>diff index.c
>>< /* next lines changed to allow copy to Trash when usr over quota */
>>< /* jwidera jwade 6/27/03 lets users "move to Trash" when over quota */
>><     if ( strstr(name,".Trash") ) {
>><        r = append_setup(&append_mailbox, name, MAILBOX_FORMAT_NORMAL,
>><                    imapd_userid, imapd_authstate, ACL_INSERT, -1);
>><     }
>><     else {
>><        r = append_setup(&append_mailbox, name, MAILBOX_FORMAT_NORMAL,
>>>    r = append_setup(&append_mailbox, name, MAILBOX_FORMAT_NORMAL,
>><     }
>Does it support unixhierarchysep ? Can you tell me the difference to just 
>setting an infinite quota on the trash folder ? What do you win with it ? I 
>cannot see any improvement to what is possible with quota...
>If you would set an infinite quota on the trash folder, whouldn't that behave 
>exactly the same ?

-------------- next part --------------
An HTML attachment was scrubbed...

More information about the Info-cyrus mailing list