Hello,
Dovecot auth protocol 1.0 defines differend command sets for client and master.
How can a daemon distinguish a master connection from a client connection? Clients do send CPID and master does not.
I have following auth configuration:
auth external { socket connect { master { path = /var/state/dovecot/login/master-auth } } }
I try to learn my authentication daemon to learn to speak with Dovecot.
I fire up my master.py and try to login via pop3 as foo:bar. Below is what my master.py receives from Dovecot (master and client), VERSION commands are not shown:
km@thinkpad:/home/km > ./krot/sbin/master.py
CPID : ['11915']
CPID : ['11915']
CPID : ['16652']
CPID : ['11915']
AUTH : ['1', 'PLAIN', 'service=POP3', 'secured', 'lip=127.0.0.1',
'rip=127.0.0.1', 'resp=AGZvbwBiYXI=']
REQUEST : ['9', '11915', '1']
CPID : ['16652']
(In the above output command and parameters are parsed.)
The protocol specification is mentioning a separate SERVICE command in the client's greeting.
I can't let my daemon die if the master issues DIE. Why should a server exit when it receives DIE?
Can anybody provide an example dialog of an authentication request that is successful and a reques that fails because of a bad password.
Thanks, Kirill
-- They make a desert and call it peace. -- Tacitus