On Friday 11 August 2006 19:24, Andrew Richards wrote:
I've been bitten by an issue running Squirrelmail on top of Dovecot using Maildir++ quotas.
Having configured these quotas in Dovecot, I notice that Dovecot appears not to exclude the 'Trash' folder from its quota calculation (which it should do, according to the Maildir++ spec). Unfortunately this breaks Squirrelmail if I try to delete a message from a close-to-quota mailbox - as per July's thread: "Maildir++ quota - how to handle a full mailbox"
Which unfortunately means that a fairly full mailbox can become 'Wedged' with Dovecot/Squirrelmail in this situation with its owner unable to delete messages if that's the only way they access their mailbox.
I took a look at the source and found the 'Quota exceeded' lines in src/plugins/quota/quota-storage.c but didn't understand it well enough to dive in... except to notice that the 'Trash' folder doesn't appear to get excluded from the calculations.
To reply to my own query:
I've mis-quoted the Maildir++ spec - the Maildir++ Trash folder is ".Trash", which differs from ".INBOX.Trash" - so the latter shouldn't necessarily be excluded from the quota calculation.
I still wanted to get Squirrelmail working (with deleting mails when near/at quota when using Maildir++ quotas), even to the extent that quotas might not be enforced during the Squirrelmail/IMAP session. Therefore I've dug into the source and worked out how to temporarily double the quota during the session (well I think that's the effect of my modification) - I've attached the relevant patch file for this should anyone else be struggling with the same problem - your mileage may vary. This at least gets Squirrelmail working.
I think a good feature to avoid having to do a kludge like this would be to add an option to the quota section of dovecot.conf where the Trash folder could be specified as not counting towards the quota.
cheers,
Andrew.