Some comments on the pike code: o Maybe combine send_user and send_password to one function? Or is it useful to do one without the other?
Mmmh no, one isn't usable without the other.
o This looks bogus:
do { recv = socket->gets(); } while(!recv);
Doesn't it hang the process if an I/O error occurs there or if the server has closed the connection?
I thought that socket->gets() would throw an error, thus breaking the loop. Isn't it the case ? What is the behaviour of gets() when an error occurs ?
o Fix support for encryption over TLS (aka SSL)?
I don't know anything about TLS.. Do you have an example somewhere ?
o Fix an asynchronous mode using callbacks?
Is it useful ? pop3 seems synchronous to my mind... there's no reason to ask a list of messages and do anything before having that list..
I agree with the other comments. Vincent.