[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]