@@ -84,8 +84,8 @@ def self.each_name(address, &proc)
84
84
##
85
85
# Creates a new Resolv using +resolvers+.
86
86
87
- def initialize ( resolvers = [ Hosts . new , DNS . new ] )
88
- @resolvers = resolvers
87
+ def initialize ( resolvers = nil , use_ipv6 : nil )
88
+ @resolvers = resolvers || [ Hosts . new , DNS . new ( DNS :: Config . default_config_hash . merge ( use_ipv6 : use_ipv6 ) ) ]
89
89
end
90
90
91
91
##
@@ -408,6 +408,11 @@ def each_address(name)
408
408
end
409
409
410
410
def use_ipv6? # :nodoc:
411
+ use_ipv6 = @config . use_ipv6?
412
+ unless use_ipv6 . nil?
413
+ return use_ipv6
414
+ end
415
+
411
416
begin
412
417
list = Socket . ip_address_list
413
418
rescue NotImplementedError
@@ -1006,6 +1011,7 @@ def lazy_initialize
1006
1011
@mutex . synchronize {
1007
1012
unless @initialized
1008
1013
@nameserver_port = [ ]
1014
+ @use_ipv6 = nil
1009
1015
@search = nil
1010
1016
@ndots = 1
1011
1017
case @config_info
@@ -1030,6 +1036,9 @@ def lazy_initialize
1030
1036
if config_hash . include? :nameserver_port
1031
1037
@nameserver_port = config_hash [ :nameserver_port ] . map { |ns , port | [ ns , ( port || Port ) ] }
1032
1038
end
1039
+ if config_hash . include? :use_ipv6
1040
+ @use_ipv6 = config_hash [ :use_ipv6 ]
1041
+ end
1033
1042
@search = config_hash [ :search ] if config_hash . include? :search
1034
1043
@ndots = config_hash [ :ndots ] if config_hash . include? :ndots
1035
1044
@@ -1085,6 +1094,10 @@ def nameserver_port
1085
1094
@nameserver_port
1086
1095
end
1087
1096
1097
+ def use_ipv6?
1098
+ @use_ipv6
1099
+ end
1100
+
1088
1101
def generate_candidates ( name )
1089
1102
candidates = nil
1090
1103
name = Name . create ( name )
0 commit comments