класс Socket::HostnameResolutionStore
Константы
- PRIORITY_ON_V4
- PRIORITY_ON_V6
Общедоступные методы класса
# File ext/socket/lib/socket.rb, line 1033
def initialize(family_names)
@family_names = family_names
@addrinfo_dict = {}
@error_dict = {}
@last_family = nil
end Общедоступные методы экземпляра
# File ext/socket/lib/socket.rb, line 1044 def add_error(family_name, error) @addrinfo_dict[family_name] = [] @error_dict[family_name] = error end
# File ext/socket/lib/socket.rb, line 1040 def add_resolved(family_name, addrinfos) @addrinfo_dict[family_name] = addrinfos end
# File ext/socket/lib/socket.rb, line 1071 def any_addrinfos? !empty_addrinfos? end
# File ext/socket/lib/socket.rb, line 1087 def any_unresolved_family? !resolved_all_families? end
# File ext/socket/lib/socket.rb, line 1067
def empty_addrinfos?
@addrinfo_dict.all? { |_, addrinfos| addrinfos.empty? }
end # File ext/socket/lib/socket.rb, line 1049
def get_addrinfo
precedences =
case @last_family
when :ipv4, nil then PRIORITY_ON_V6
when :ipv6 then PRIORITY_ON_V4
end
precedences.each do |family_name|
addrinfo = @addrinfo_dict[family_name]&.shift
next unless addrinfo
@last_family = family_name
return addrinfo
end
nil
end # File ext/socket/lib/socket.rb, line 1075 def resolved?(family) @addrinfo_dict.has_key? family end
# File ext/socket/lib/socket.rb, line 1083 def resolved_all_families? (@family_names - @addrinfo_dict.keys).empty? end
# File ext/socket/lib/socket.rb, line 1079 def resolved_successfully?(family) resolved?(family) && !@error_dict[family] end
Ruby Core © 1993–2025 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.