remote_fetcher.rb: fix leaked FDs
* lib/rubygems/remote_fetcher.rb (request): close connections. * lib/rubygems/request.rb (close): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
895c1ce477
commit
a818740553
@ -337,6 +337,8 @@ class Gem::RemoteFetcher
|
|||||||
request.fetch do |req|
|
request.fetch do |req|
|
||||||
yield req if block_given?
|
yield req if block_given?
|
||||||
end
|
end
|
||||||
|
ensure
|
||||||
|
request.close if request
|
||||||
end
|
end
|
||||||
|
|
||||||
def https?(uri)
|
def https?(uri)
|
||||||
|
@ -28,6 +28,12 @@ class Gem::Request
|
|||||||
@env_no_proxy = get_no_proxy_from_env
|
@env_no_proxy = get_no_proxy_from_env
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def close
|
||||||
|
@connections.each_value do |conn|
|
||||||
|
conn.finish
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def add_rubygems_trusted_certs(store)
|
def add_rubygems_trusted_certs(store)
|
||||||
pattern = File.expand_path("./ssl_certs/*.pem", File.dirname(__FILE__))
|
pattern = File.expand_path("./ssl_certs/*.pem", File.dirname(__FILE__))
|
||||||
Dir.glob(pattern).each do |ssl_cert_file|
|
Dir.glob(pattern).each do |ssl_cert_file|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user