- Implement MiniSSL for JRuby
- Modify `Binder` and `MiniSSL::Context` to to accommodate the fact
that Java SSL demands a java keystore rather than a key/cert pair
- Change the MiniSSL native extension interface to take a
`MiniSSL::Context` rather than a key/cert pair so that each extension
can grab keys off the context as appropriate
Within MiniSSL#read_nonblock it was possible for all data to be read from the
network connection but only partially read from the engine on the first
attempt. This could lead to a hang during a later IO.select call because no more data
was being sent over the socket but the request could not be processed because
all the data hadn't been read from the engine.
Changed read nonblock to repeatedly attempt to read from the engine until there
is nothing more ready to read.
Previously, MiniSSL accepted invalid paths for the key/cert file
and timed out on the first request. Now, MiniSSL raises an ArgumentError
if one of these files does not exist.
Fix for puma/puma#168