aboutsummaryrefslogtreecommitdiffstats
path: root/lib/rubygems/request.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/rubygems/request.rb')
-rw-r--r--lib/rubygems/request.rb7
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