5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
# File 'lib/david/server/multicast.rb', line 5
def multicast_initialize!
@socket.to_io.setsockopt(Socket::SOL_SOCKET, Socket::SO_REUSEADDR, 1)
if ipv6?
maddrs = ['ff02::fd', 'ff05::fd']
maddrs << 'ff02::1' if OS.osx?
maddrs.each { |maddr| multicast_listen_ipv6(maddr) }
setsockopts_ipv6
else
maddrs = ['224.0.1.187']
multicast_listen_ipv4(maddrs.first)
setsockopts_ipv4
end
log.debug("Joined multicast groups: #{maddrs.join(', ')}")
rescue Errno::ENODEV, Errno::EADDRNOTAVAIL
log.warn('Multicast initialization failure: Device not found.')
@options[:Multicast] = false
end
|