Hello,
I ended my previous message with :
[...] Q3. What am I doing wrong? [...]
Given the details discussed in another thread (http://www.dovecot.org/list/dovecot/2013-July/091309.html), I tried by changing the user_query's SELECT from:
user_query = \
SELECT DISTINCT \
nickname AS user, \
mail_home AS home, \
mail_location AS mail, \
quota_rule AS quota_rule \
FROM \
[...]
to:
user_query = \
SELECT DISTINCT \
nickname AS user, \
coalesce(mail_home, '/_Mailstores/' || nickname) AS home, \
mail_location AS mail, \
'dict:Quota utilisateur:' || nickname || ':proxy::sql_quota' AS quota, \
quota_rule AS quota_rule \
FROM \
[...]
while keeping dovecot.conf unchanged (see my previous message).
The idea is to not rely anymore on the expansion of %u (or %n or %d) in dovecot.conf, while still keeping the ability to have per-user settings.
Currently, a doveadm quota get -u john.doe yields:
Quota name Type Value Limit %
Quota utilisateur STORAGE 31 34 91
Quota utilisateur MESSAGE 23 - 0
So, let's ask quota-status what it believes about a message with a size of 100000.
The reply is still "action=OK", the dict server still isn't launched, and the log shows:
auth: Debug: userdb out: USER 1 john.doe@example.com home=/_Mailstores/john.doe quota=dict:Quota utilisateur:john.doe:proxy::sql_quota quota_rule=*:storage=35000b
quota-status: Debug: auth input: john.doe@example.com home=/_Mailstores/john.doe quota=dict:Quota utilisateur:john.doe:proxy::sql_quota quota_rule=*:storage=35000b
quota-status: Debug: Added userdb setting: plugin/quota=dict:Quota utilisateur:john.doe:proxy::sql_quota
quota-status: Debug: Added userdb setting: plugin/quota_rule=*:storage=35000b
quota-status(john.doe@example.com): Debug: Effective uid=999, gid=999, home=/_Mailstores/john.doe
quota-status(john.doe@example.com): Debug: Quota root: name=Quota utilisateur backend=dict args=john.doe:proxy::sql_quota
quota-status(john.doe@example.com): Debug: Quota rule: root=Quota utilisateur mailbox=* bytes=35000 messages=0
quota-status(john.doe@example.com): Debug: Quota grace: root=Quota utilisateur bytes=3500 (10%)
quota-status(john.doe@example.com): Debug: dict quota: user=john.doe, uri=proxy::sql_quota, noenforcing=0
quota-status(john.doe@example.com): Debug: fs: root=/_Mailstores/john.doe/mboxes, index=, indexpvt=, control=, inbox=/_Mailstores/john.doe/mboxes/inbox, alt=
To rule out any other side-effects potentially introduced by the user_query, I even tried with the "nickname AS user" removed from the SELECT.
Even with that, the reply is "action=OK", the dict server still isn't launched, and the lines written to the log are undistinguishable from above ones...
It is to be noted that no lines in the log are related to possible problems encountered for launching it. It is a bit as if quota_check() in src/plugins/quota/quota-status.c always immediately returned with 1 at the first test.
Anyway, I'm still stuck. And still very interested in replies to Q1, Q2 and Q3. ;-)
TIA, Axel