diff options
author | Karol Bucek <kares@users.noreply.github.com> | 2022-04-20 06:01:02 +0200 |
---|---|---|
committer | git <svn-admin@ruby-lang.org> | 2022-04-20 13:01:08 +0900 |
commit | cf73cf5981802f2bcc30aba07914acf4286cda5a (patch) | |
tree | 9094cfece3e22e71a1339c6692529b990f3d845f /lib/net/http.rb | |
parent | fa2df520bcaaf3957db0489f1237311f091ac08d (diff) |
[ruby/net-http] Feature detect to make net/http usable with JRuby
Handle missing session_new_cb= and do not call
session_cache_mode=, as JRuby SSL does not support
these methods.
https://github.com/ruby/net-http/commit/3237ef4d8c
Diffstat (limited to 'lib/net/http.rb')
-rw-r--r-- | lib/net/http.rb | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/net/http.rb b/lib/net/http.rb index dc8ed051f0..dd64a2d11e 100644 --- a/lib/net/http.rb +++ b/lib/net/http.rb @@ -1051,10 +1051,14 @@ module Net #:nodoc: end end @ssl_context.set_params(ssl_parameters) - @ssl_context.session_cache_mode = - OpenSSL::SSL::SSLContext::SESSION_CACHE_CLIENT | - OpenSSL::SSL::SSLContext::SESSION_CACHE_NO_INTERNAL_STORE - @ssl_context.session_new_cb = proc {|sock, sess| @ssl_session = sess } + unless @ssl_context.session_cache_mode.nil? # a dummy method on JRuby + @ssl_context.session_cache_mode = + OpenSSL::SSL::SSLContext::SESSION_CACHE_CLIENT | + OpenSSL::SSL::SSLContext::SESSION_CACHE_NO_INTERNAL_STORE + end + if @ssl_context.respond_to?(:session_new_cb) # not implemented under JRuby + @ssl_context.session_new_cb = proc {|sock, sess| @ssl_session = sess } + end # Still do the post_connection_check below even if connecting # to IP address |