mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	Postponing the Bundler merge.
I faced a big issue about Bundler with ruby core. I have no time to resolve it issue before 2.5 final release. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									73bed03128
								
							
						
					
					
						commit
						7825e8363d
					
				
					 1100 changed files with 19 additions and 71581 deletions
				
			
		| 
						 | 
				
			
			@ -1,52 +0,0 @@
 | 
			
		|||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
# We forcibly require OpenSSL, because net/http/persistent will only autoload
 | 
			
		||||
# it. On some Rubies, autoload fails but explicit require succeeds.
 | 
			
		||||
begin
 | 
			
		||||
  require "openssl"
 | 
			
		||||
rescue LoadError
 | 
			
		||||
  # some Ruby builds don't have OpenSSL
 | 
			
		||||
end
 | 
			
		||||
module Bundler
 | 
			
		||||
  module Persistent
 | 
			
		||||
    module Net
 | 
			
		||||
      module HTTP
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
require "bundler/vendor/net-http-persistent/lib/net/http/persistent"
 | 
			
		||||
 | 
			
		||||
module Bundler
 | 
			
		||||
  class PersistentHTTP < Persistent::Net::HTTP::Persistent
 | 
			
		||||
    def connection_for(uri)
 | 
			
		||||
      connection = super
 | 
			
		||||
      warn_old_tls_version_rubygems_connection(uri, connection)
 | 
			
		||||
      connection
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    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
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue