On 10/18/2014 10:37 AM, Luigi Rosa wrote:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Gedalya wrote on 18/10/2014 16:10:
I guess you have to use the proxy.
So maybe something like
plugin { last_login_dict = proxy::lastlogin }
dict { lastlogin = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext }
I'll try it later myself, thanks for taking it thus far :-) I've been
meaning to try this out but was rather perplexed.
I made some progress thank to your suggestions.
dovecot-dict-sql.conf.ext content is:
map {
pattern = /shared/last-login/$user
table = mailbox
username_field = username
value_field = lastlogin
fields {
username = $user
}
}
Note that you must not specify "driver" parameter
Plugin is defined this way:
plugin {
last_login_dict = proxy::lastlogin
last_login_key = last-login/%u # default
}
dict {
lastlogin = mysql:/etc/dovecot/dovecot-dict-sql.conf.ext
mode = 0660
user = 501
}
But I get two errors.
First is the permission of /var/run/dovecot/dict that is 700 root.root and I
get a permission error. Nothing changes if I put user = root. I have to
manually chmod /var/run/dovecot/dict every time I restart Dovecot otherwise I
get
Error: net_connect_unix(/var/run/dovecot//dict) failed: Permission denied
(euid=501(mailvirtuale) egid=501(mailvirtuale) missing +r perm:
/var/run/dovecot//dict, dir owned by 0:0 mode=0755)
If I chmod 777 /var/run/dovecot/dict the error disappears but I get this:
dovecot: imap-login: Login: user=<username>, method=PLAIN, rip=127.0.0.1,
lip=127.0.0.1, mpid=497913, secured, session=<6R0mYbMFFwB/AAAB>
dovecot: dict: Error: sql dict set: Invalid/unmapped key:
shared/last-login/username
OK I got it.
The code looks at shared/$last_login_key, so shared/last-login/username,
but your map says /shared/last-login/$user, note the leading slash!
That's probably all it is.