Issue #814 has been updated by Tony Arcieri.


For the record, I don't think either of these patches addresses the requirements of non-blocking OpenSSL.

I've created a gem that "monkeypatches" non-blocking SSL support into 1.8.6+ and 1.9.1.

http://github.com/tarcieri/openssl-nonblock

This addresses the full requirements of non-blocking SSL and has been used in real-world applications within a nonblocking event framework.

The requirements addressed by this gem that are not addressed by either of the previous patches:

- Non-blocking counterparts are provided to ALL OpenSSL::SSL::SSLSocket methods
- Separate exceptions are provided for when a given operation requires the socket to be in the readable or writable state, regardless of what operation was requested.  A read request may require the socket to be writable to continue, or vice versa, due to the requirements of SSL (e.g. session renegotiation)

If it's agreed that my gem fully addresses the requirements of non-blocking OpenSSL, I can easily put together a patch for incorporation into 1.9.2.
----------------------------------------
http://redmine.ruby-lang.org/issues/show/814

----------------------------------------
http://redmine.ruby-lang.org