On Wed, 2007-04-04 at 17:34 +0200, Nicolas Boullis wrote:
This would make it easy. That code is already written, but it's not in Dovecot's CVS yet. It would be useful also in dovecot-auth. Originally I was thinking about using the code to replace the waitpid() calls in master, but that change got a bit complex so I forgot about it then.
OK, then I guess I should consider it when I do the porting to current CVS HEAD. Right?
Yea.
By the way, any documentation I should read about quota setups, quota rules, and quota roots for IMAP? When I had a look at the quota backport for 1.0, I failed to understand how things work together...
v1.0's quota code is somewhat kludgy. Quota setup is nothing, forget that. It's already removed from CVS HEAD. I think the examples in dovecot-example.conf should help with understanding quota rules and roots:
# Quota limits are set using "quota_rule" parameters, either in here or in # userdb. It's also possible to give mailbox-specific limits, for example: # quota_rule = *:storage=1048576 # quota_rule2 = Trash:storage=102400 # User has now 1GB quota, but when saving to Trash mailbox the user gets # additional 100MB. # # Multiple quota roots are also possible, for example: # quota = dict:user::proxy::quota # quota2 = dict:domain:%d:proxy::quota_domain # quota_rule = *:storage=102400 # quota2_rule = *:storage=1048576 # Gives each user their own 100MB quota and one shared 1GB quota within # the domain.
Does this mean it looks good enough for you and you have nothing to criticize? Wow!
I was mostly concerned about if the the configuration should be done like that or somehow differently. But I think it's good now. With CVS HEAD you'd have to support multiple quota roots though, so:
quota_warning = .. quota_warning2 = .. quota2_warning = ..
There are also some minor coding style things to keep it consistent, but I'll change them when I merge the code. And :2 needs to be removed here, it's a GCC extension:
- enum quota_warning_limit_kind storage_limit_kind:2;
- enum quota_warning_limit_kind count_limit_kind:2;