M2Crypto: select() behaves weird on SSL sockets

Irmen de Jong irmen at NOSPAMREMOVETHISxs4all.nl
Tue Jun 11 17:41:11 EDT 2002


Donn Cave wrote:

> I'm no expert on this, but my theory is that you must call
> SSL_pending(self->ssl) to see if any data remains in its buffer.
> Then only when no data remains, you would call select.

I looked around a bit and oh boy, M2Crypto supplies a "pending"
method on SSL sockets, that apparently returns the remaining data.

I now have a workaround; if my socket is an SSL socket, and
there are still bytes pending (socket.pending()>0), I don't
call select. In all other cases it is 'safe' to call select.

My code (Pyro with SSL and timeouts) now works, I'm happy :-)


Thanks for the help!


Irmen de Jong




More information about the Python-list mailing list