ctx.ca does not deal well with being set to nil, which will be the case if
verify_mode is none and the ca param was not present in the bind line.
Specifically, you get this backtrace:
<path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/minissl.rb:138:in `exist?': no implicit conversion of nil into String (TypeError)
from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/minissl.rb:138:in `ca='
from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/binder.rb:169:in `block in parse'
from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/binder.rb:84:in `each'
from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/binder.rb:84:in `parse'
from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/runner.rb:119:in `load_and_bind'
from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/single.rb:79:in `run'
from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/lib/puma/cli.rb:215:in `run'
from <path>/gems/ruby/2.1.0/gems/puma-2.15.0/bin/puma:10:in `<top (required)>'
from <path>/gems/ruby/2.1.0/bin/puma:23:in `load'
from <path>/gems/ruby/2.1.0/bin/puma:23:in `<main>'
Because frameworks like rails dependent on rack, if puma truly wants to
be able to reload new code and thus new versions of rails, it has to be
able to reload rack as well.
Having a dependency on rack held by puma prevented that from happening
and so that dependency has been removed.
- 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
this fails, and is standard:
puma -b 'tcp://[2001:6e8:288::a]:9999'
this fails. and is non-standard but potentially acceptable to puma as port is mandatory argument:
puma -b 'tcp://2001:6e8:288:🅰️9999'
commit fixes the first issue, but is ghetto as hell, should be 1.8 .. 2.0 friendly