On this page
class Bundler::PersistentHTTP
Public Instance Methods
# File lib/bundler/vendored_persistent.rb, line 22
def connection_for(uri)
connection = super
warn_old_tls_version_rubygems_connection(uri, connection)
connection
end
Calls superclass method
Bundler::Persistent::Net::HTTP::Persistent#connection_for
# File lib/bundler/vendored_persistent.rb, line 28
def warn_old_tls_version_rubygems_connection(uri, connection)
return unless connection.use_ssl?
return unless (uri.host || "").end_with?("rubygems.org")
socket = connection.instance_variable_get(:@socket)
return unless socket
socket_io = socket.io
return unless socket_io.respond_to?(:ssl_version)
ssl_version = socket_io.ssl_version
case ssl_version
when /TLSv([\d\.]+)/
version = Gem::Version.new($1)
if version < Gem::Version.new("1.2")
Bundler.ui.warn \
"Warning: Your Ruby version is compiled against a copy of OpenSSL that is very old. " \
"Starting in January 2018, RubyGems.org will refuse connection requests from these " \
"very old versions of OpenSSL. If you will need to continue installing gems after " \
"January 2018, please follow this guide to upgrade: http://ruby.to/tls-outdated.",
:wrap => true
end
end
end
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.