class Bundler::MirrorSockets

the network interface is both ipv4 and ipv5
because of it having many dns entries or because
One mirror may correspond to many different addresses, both
a given mirror.
Class used to build the list of sockets that correspond to

def any?

def any?
  @addresses.any? do |address|
    socket = Socket.new(Socket.const_get(address.type), Socket::SOCK_STREAM, 0)
    socket.setsockopt(Socket::IPPROTO_TCP, Socket::TCP_NODELAY, 1)
    value = yield socket, address.to_socket_address, @timeout
    socket.close unless socket.closed?
    value
  end
end

def initialize(mirror)

def initialize(mirror)
  @timeout = mirror.fallback_timeout
  @addresses = Socket.getaddrinfo(mirror.uri.host, mirror.uri.port).map do |address|
    SocketAddress.new(address[0], address[3], address[1])
  end
end