Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 21 additions & 18 deletions lib/rubygems/vendor/resolv/lib/resolv.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,7 @@
require 'socket'
require_relative '../../timeout/lib/timeout'
require 'io/wait'

begin
require_relative '../../../vendored_securerandom'
rescue LoadError
end
require_relative '../../../vendored_securerandom'

# Gem::Resolv is a thread-aware DNS resolver library written in Ruby. Gem::Resolv can
# handle multiple DNS requests concurrently without blocking the entire Ruby
Expand Down Expand Up @@ -37,7 +33,7 @@

class Gem::Resolv

VERSION = "0.5.0"
VERSION = "0.6.0"

##
# Looks up the first IP address for +name+.
Expand Down Expand Up @@ -83,9 +79,22 @@ def self.each_name(address, &proc)

##
# Creates a new Gem::Resolv using +resolvers+.
#
# If +resolvers+ is not given, a hash, or +nil+, uses a Hosts resolver and
# and a DNS resolver. If +resolvers+ is a hash, uses the hash as
# configuration for the DNS resolver.

def initialize(resolvers=nil, use_ipv6: nil)
@resolvers = resolvers || [Hosts.new, DNS.new(DNS::Config.default_config_hash.merge(use_ipv6: use_ipv6))]
def initialize(resolvers=(arg_not_set = true; nil), use_ipv6: (keyword_not_set = true; nil))
if !keyword_not_set && !arg_not_set
warn "Support for separate use_ipv6 keyword is deprecated, as it is ignored if an argument is provided. Do not provide a positional argument if using the use_ipv6 keyword argument.", uplevel: 1
end

@resolvers = case resolvers
when Hash, nil
[Hosts.new, DNS.new(DNS::Config.default_config_hash.merge(resolvers || {}))]
else
resolvers
end
end

##
Expand Down Expand Up @@ -615,16 +624,10 @@ def extract_resources(msg, name, typeclass) # :nodoc:
}
end

if defined? Gem::SecureRandom
def self.random(arg) # :nodoc:
begin
Gem::SecureRandom.random_number(arg)
rescue NotImplementedError
rand(arg)
end
end
else
def self.random(arg) # :nodoc:
def self.random(arg) # :nodoc:
begin
Gem::SecureRandom.random_number(arg)
rescue NotImplementedError
rand(arg)
end
end
Expand Down
13 changes: 0 additions & 13 deletions tool/automatiek/resolv-v0.4.0.patch

This file was deleted.

13 changes: 13 additions & 0 deletions tool/automatiek/resolv-v0.6.0.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
diff --git a/lib/rubygems/vendor/resolv/lib/resolv.rb b/lib/rubygems/vendor/resolv/lib/resolv.rb
index 511f9888c26..4d95e5fc7fc 100644
--- a/lib/rubygems/vendor/resolv/lib/resolv.rb
+++ b/lib/rubygems/vendor/resolv/lib/resolv.rb
@@ -3,7 +3,7 @@
require 'socket'
require_relative '../../timeout/lib/timeout'
require 'io/wait'
-require_relative '../../securerandom/lib/securerandom'
+require_relative '../../../vendored_securerandom'

# Gem::Resolv is a thread-aware DNS resolver library written in Ruby. Gem::Resolv can
# handle multiple DNS requests concurrently without blocking the entire Ruby
2 changes: 1 addition & 1 deletion tool/automatiek/vendor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,7 @@ def require_target
VendoredGem.new(name: "net-http-persistent", namespace: "Net::HTTP::Persistent", prefix: "Gem", vendor_lib: "bundler/lib/bundler/vendor/net-http-persistent", license_path: "README.rdoc", extra_dependencies: %w[net-http uri/lib/rubygems/vendor/uri], patch_name: "net-http-persistent-v4.0.2.patch"),
VendoredGem.new(name: "net-protocol", namespace: "Net", prefix: "Gem", vendor_lib: "lib/rubygems/vendor/net-protocol", license_path: "LICENSE.txt"),
VendoredGem.new(name: "optparse", namespace: "OptionParser", prefix: "Gem", vendor_lib: "lib/rubygems/vendor/optparse", license_path: "COPYING", extra_dependencies: %w[uri/lib/rubygems/vendor/uri], patch_name: "optparse-v0.4.0.patch"),
VendoredGem.new(name: "resolv", namespace: "Resolv", prefix: "Gem", vendor_lib: "lib/rubygems/vendor/resolv", license_path: "COPYING", extra_dependencies: %w[securerandom/lib/rubygems/vendor/securerandom timeout], patch_name: "resolv-v0.4.0.patch"),
VendoredGem.new(name: "resolv", namespace: "Resolv", prefix: "Gem", vendor_lib: "lib/rubygems/vendor/resolv", license_path: "COPYING", extra_dependencies: %w[securerandom/lib/rubygems/vendor/securerandom timeout], patch_name: "resolv-v0.6.0.patch"),
VendoredGem.new(name: "securerandom", namespace: "SecureRandom", prefix: "Gem", vendor_lib: "lib/rubygems/vendor/securerandom", license_path: "COPYING"),
VendoredGem.new(name: "timeout", namespace: "Timeout", prefix: "Gem", vendor_lib: "lib/rubygems/vendor/timeout", license_path: "COPYING", patch_name: "timeout-v0.4.1.patch"),
VendoredGem.new(name: "tsort", namespace: "TSort", prefix: "Gem", vendor_lib: "lib/rubygems/vendor/tsort", license_path: "LICENSE.txt"),
Expand Down
2 changes: 1 addition & 1 deletion tool/bundler/vendor_gems.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
gem "net-protocol", "0.2.2"
gem "optparse", "0.6.0"
gem "pub_grub", github: "jhawthorn/pub_grub"
gem "resolv", "0.5.0"
gem "resolv", "0.6.0"
gem "securerandom", "0.4.0"
gem "timeout", "0.4.2"
gem "thor", "1.3.2"
Expand Down
6 changes: 3 additions & 3 deletions tool/bundler/vendor_gems.rb.lock
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ GEM
net-protocol (0.2.2)
timeout
optparse (0.6.0)
resolv (0.5.0)
resolv (0.6.0)
securerandom (0.4.0)
thor (1.3.2)
timeout (0.4.2)
Expand All @@ -45,7 +45,7 @@ DEPENDENCIES
net-protocol (= 0.2.2)
optparse (= 0.6.0)
pub_grub!
resolv (= 0.5.0)
resolv (= 0.6.0)
securerandom (= 0.4.0)
thor (= 1.3.2)
timeout (= 0.4.2)
Expand All @@ -61,7 +61,7 @@ CHECKSUMS
net-protocol (0.2.2) sha256=aa73e0cba6a125369de9837b8d8ef82a61849360eba0521900e2c3713aa162a8
optparse (0.6.0) sha256=25e90469c1cd44048a89dc01c1dde9d5f0bdf717851055fb18237780779b068c
pub_grub (0.5.0)
resolv (0.5.0) sha256=1e6059e7af07f4a6f20de77f674a9c339a483d543cc936189e3d272c1d5009f1
resolv (0.6.0) sha256=b8b73f7734d4102ef9f75bad281d8fd1c434f8588b6aba17832ddc16fe679fab
securerandom (0.4.0) sha256=37a844aa4fe4dac8e47c5bc35f91531d4dc636ccee54a1ba1629087dda0a53a8
thor (1.3.2) sha256=eef0293b9e24158ccad7ab383ae83534b7ad4ed99c09f96f1a6b036550abbeda
timeout (0.4.2) sha256=8aca2d5ff98eb2f7a501c03f8c3622065932cc58bc58f725cd50a09e63b4cc19
Expand Down