Skip to content

Commit af48f3a

Browse files
authored
Merge pull request #43 from jeremyevans/resolv-new-set-config
Allow setting default Resolv::DNS config in Resolv.new
2 parents 61cbc3d + 5ff9dda commit af48f3a

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

lib/resolv.rb

+15-2
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,22 @@ def self.each_name(address, &proc)
7979

8080
##
8181
# Creates a new Resolv using +resolvers+.
82+
#
83+
# If +resolvers+ is not given, a hash, or +nil+, uses a Hosts resolver and
84+
# and a DNS resolver. If +resolvers+ is a hash, uses the hash as
85+
# configuration for the DNS resolver.
86+
87+
def initialize(resolvers=(arg_not_set = true; nil), use_ipv6: (keyword_not_set = true; nil))
88+
if !keyword_not_set && !arg_not_set
89+
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
90+
end
8291

83-
def initialize(resolvers=nil, use_ipv6: nil)
84-
@resolvers = resolvers || [Hosts.new, DNS.new(DNS::Config.default_config_hash.merge(use_ipv6: use_ipv6))]
92+
@resolvers = case resolvers
93+
when Hash, nil
94+
[Hosts.new, DNS.new(DNS::Config.default_config_hash.merge(resolvers || {}))]
95+
else
96+
resolvers
97+
end
8598
end
8699

87100
##

0 commit comments

Comments
 (0)