Guido van Rossum [mailto:guido@python.org] wrote: > > It doesn't look terribly hard to make the SSL wrapper obey > > the timeout, by > > calling select() on the "raw" socket before calling > > SSL_write or SSL_read. > > I'm willing to try to get this to work. > > That's cool. I don't know much about the SSL_read() API -- does it > promise to read exactly the requested number of byte (unless the > socket is closed)? Then a single select() before it is called may not > be sufficient. I don't know any more than you do -- I've never looked at the OpenSSL docs until today. It looks like SSL_read may indeed return fewer bytes than requested: http://www.openssl.org/docs/ssl/SSL_read.html But I still think that a single select() is OK. It seems to be working fine in my testing. The select() times out only if there has been no activity on the socket for the entire timeout period, which seems sufficient to me. I don't think it matters that SSL_read may return fewer bytes than requested. Maybe I'm missing something. Anyhow, I'll do some more testing and then if it still seems to work I'll upload a patch later today. - Geoff
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4