On 2.8.2013, at 19.18, Richard Platel <rpla...@tucows.com> wrote: >> I'm not exactly sure what you thought of, but my idea was simply that you'd >> add your own dict proxy in the middle which hooks into the GET command, and >> increases its value by reading the filestoresize. You can already do that by >> pointing to a UNIX socket different from the normal dict server socket, >> similar as in http://wiki2.dovecot.org/AuthDatabase/Dict > > If, for example, the user has 2GB quota, and 750MB of mail, and 500MB of > files, we'd like the mail client to show that the user has 2GB quota, and > 1.25GB used, .75GB free. > > I see how via the dict userdb proxy I could reduce the user's quota allowance > by the filestorage amount: > quota_rule=*:storage=<user allowed storage - filestore size>, > and the client would show the correct free amount, but not the correct total > or used amount. > > Is this what you mean, or is there some other setting or some other dict > proxy entirely that I'm missing?
I didn't mean userdb dict proxy. I meant you'd use dict backend for calculating quota instead of Maildir++. http://wiki2.dovecot.org/Quota/Dict So for example you could still keep using the file based quota and first step would be to configure: plugin { quota = dict:User quota::file:%h/Maildir/dovecot-quota } Next I thought you could have configured dict proxy to access the file, but %h or ~/ don't actually work there.. So you'd probably have to implement the whole file access via your dict server: plugin { quota = dict:User quota::proxy:/var/run/dovecot/tucows-quota:quota } Then you'd have a process listening on tucows-quota UNIX socket that handles the get/set/unset/atomic-inc dict commands. Or alternatively implement a new dict backend as a Dovecot plugin that does the same thing: plugin { quota = dict:User quota::proxy::quota } dict { quota = tucowsquota: }