[Dovecot] Try with Dictionary proxy server, but... Bug or not ?

mikael mikael at pirio.org
Mon Jul 24 00:41:16 EEST 2006


mikael a écrit :
> And in MySQL log :
> 
> 060723 15:07:01     460 Connect     Accès refusé pour l'utilisateur: 
> 'dovecot'@'@localhost' (mot de passe: NON)
> 060723 15:07:45     461 Connect     Accès refusé pour l'utilisateur: 
> 'dovecot'@'@localhost' (mot de passe: NON)
> 
> 
> It try to connect with 'dovecot'@'@localhost'... But it will be 
> 'dovecot'@'localhost'. No ?

I find my error : My mysql user ('dovecot') has a pasword :D So i have modified my 
"dict-quota.conf" file like this (add the password value) :

   connect        = host=localhost dbname=dovecot user=dovecot password=<MYPASSWORD>
   table          = quota
   select_field   = current
   where_field    = path
   username_field = username


And I have modified the password field in mysql.user table (MySQL version 5) to use old 
style password (dovecot use old style ? dovecot can't connect without the use of old style) :

mysql> UPDATE mysql.user SET Password = OLD_PASSWORD('<MYPASSWORD>')WHERE User='dovecot';
mysql> FLUSH PRIVILEGES;

And it works... In fact, i have only connexion... I can't really use quota :'(


Now, I have another problem : i use the proxy conf with dict, and i have two mail accounts 
(system) "user1" and "user2". When i use thunderbird to read user1 mailbox, the first 
query to det quota is with the username "user1". It's OK :

  492 Query  SELECT current FROM quota WHERE path = 'quota/storage' AND username = 'user1'
  492 Query  BEGIN;INSERT INTO quota (current, path, username) VALUES ('quota/storage', 0, 
'user1') ON DUPLICATE KEY UPDATE current = current + 0;COMMIT


I don't understant the second query "BEGIN;...;COMMIT". what is the role of this query ? 
But the "INSERT" is it OK ? I think it will be "INSERT INTO quota (path, current, 
username)" and not "INSERT INTO quota (current, path, username)", because path is a 
varchar(255) ('quota/storage') and current is an integer (0). No ?


My real problem isn't here... When i would like to read the user2 mailbox, the query to 
get the user2 quota is the same that the query for user1 !? For my user2, the query is :

  492 Query  SELECT current FROM quota WHERE path = 'quota/storage' AND username = 'user1'
  492 Query  BEGIN;INSERT INTO quota (current, path, username) VALUES ('quota/storage', 0, 
'user1') ON DUPLICATE KEY UPDATE current = current + 0;COMMIT


When i restart Thunderbird and read first the user2 mailbox, the query is :

  492 Query  SELECT current FROM quota WHERE path = 'quota/storage' AND username = 'user2'
  492 Query  BEGIN;INSERT INTO quota (current, path, username) VALUES ('quota/storage', 0, 
'user2') ON DUPLICATE KEY UPDATE current = current + 0;COMMIT

And this query is for user2 and user1 !..


How the dovecot quota mechanism works with dict ???

Thanks,
-- 
Mikaël,


More information about the dovecot mailing list