In Files

  • bundler/mirror.rb

Parent

Methods

Class/Module Index [+]

Quicksearch

Bundler::MirrorSockets

Class used to build the list of sockets that correspond to

a given mirror.

One mirror may correspond to many different addresses, both

because of it having many dns entries or because
the network interface is both ipv4 and ipv5

Public Class Methods

new(mirror) click to toggle source
 
               # File bundler/mirror.rb, line 187
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
            

Public Instance Methods

any?() click to toggle source
 
               # File bundler/mirror.rb, line 194
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
            
There is an updated format of the API docs for this version here.