ruby-changes:54179
From: naruse <ko1@a...>
Date: Fri, 14 Dec 2018 17:01:45 +0900 (JST)
Subject: [ruby-changes:54179] naruse:r66400 (trunk): fix r66163
naruse 2018-12-14 17:01:40 +0900 (Fri, 14 Dec 2018) New Revision: 66400 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=66400 Log: fix r66163 OpenSSL maybe aren't loaded in rubygems. Modified files: trunk/lib/rubygems/remote_fetcher.rb trunk/test/rubygems/test_gem_remote_fetcher.rb Index: test/rubygems/test_gem_remote_fetcher.rb =================================================================== --- test/rubygems/test_gem_remote_fetcher.rb (revision 66399) +++ test/rubygems/test_gem_remote_fetcher.rb (revision 66400) @@ -516,6 +516,24 @@ PeIQQkFng2VVot/WAQbv3ePqWq07g1BBcwIBAg== https://github.com/ruby/ruby/blob/trunk/test/rubygems/test_gem_remote_fetcher.rb#L516 assert_equal url, e.uri end + def test_fetch_path_openssl_ssl_sslerror + fetcher = Gem::RemoteFetcher.new nil + @fetcher = fetcher + + def fetcher.fetch_http(uri, mtime = nil, head = nil) + raise OpenSSL::SSL::SSLError + end + + url = 'http://example.com/uri' + + e = assert_raises Gem::RemoteFetcher::FetchError do + fetcher.fetch_path url + end + + assert_equal "OpenSSL::SSL::SSLError: OpenSSL::SSL::SSLError (#{url})", e.message + assert_equal url, e.uri + end + def test_fetch_path_unmodified fetcher = Gem::RemoteFetcher.new nil @fetcher = fetcher Index: lib/rubygems/remote_fetcher.rb =================================================================== --- lib/rubygems/remote_fetcher.rb (revision 66399) +++ lib/rubygems/remote_fetcher.rb (revision 66400) @@ -274,7 +274,8 @@ class Gem::RemoteFetcher https://github.com/ruby/ruby/blob/trunk/lib/rubygems/remote_fetcher.rb#L274 raise rescue Timeout::Error raise UnknownHostError.new('timed out', uri.to_s) - rescue IOError, SocketError, SystemCallError, OpenSSL::SSL::SSLError => e + rescue IOError, SocketError, SystemCallError, + *(OpenSSL::SSL::SSLError if defined?(OpenSSL)) => e if e.message =~ /getaddrinfo/ raise UnknownHostError.new('no such name', uri.to_s) else -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/