diff options
Diffstat (limited to 'lib/rubygems/request.rb')
-rw-r--r-- | lib/rubygems/request.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/lib/rubygems/request.rb b/lib/rubygems/request.rb index 75f9e9979a..1ed0fbcb99 100644 --- a/lib/rubygems/request.rb +++ b/lib/rubygems/request.rb @@ -1,6 +1,5 @@ # frozen_string_literal: true require 'net/http' -require 'time' require 'rubygems/user_interaction' class Gem::Request @@ -45,7 +44,8 @@ class Gem::Request end def self.configure_connection_for_https(connection, cert_files) - require 'openssl' + raise Gem::Exception.new('OpenSSl is not available. Install OpenSSL and rebuild Ruby (preferred) or use non-HTTPS sources') unless Gem::HAVE_OPENSSL + connection.use_ssl = true connection.verify_mode = Gem.configuration.ssl_verify_mode || OpenSSL::SSL::VERIFY_PEER @@ -125,7 +125,7 @@ class Gem::Request def connection_for(uri) @connection_pool.checkout - rescue defined?(OpenSSL::SSL) ? OpenSSL::SSL::SSLError : Errno::EHOSTDOWN, + rescue Gem::HAVE_OPENSSL ? OpenSSL::SSL::SSLError : Errno::EHOSTDOWN, Errno::EHOSTDOWN => e raise Gem::RemoteFetcher::FetchError.new(e.message, uri) end @@ -143,6 +143,7 @@ class Gem::Request request.add_field 'Keep-Alive', '30' if @last_modified + require 'time' request.add_field 'If-Modified-Since', @last_modified.httpdate end |