Sha256: cd91e96ae4ae4ba936ba5c55026d1f2fa1acc581789f33e323bc894b28b1e485
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
require 'socket' require 'ipaddr' module RUPNP module SSDP # Base class for multicast connections (mainly SSDP search and listen) # @abstract class MulticastConnection < EM::Connection include LogMixin # @param [Integer] ttl def initialize(ttl=nil) @ttl = ttl || DEFAULT_TTL setup_multicast_socket end # Get peer info # @return [Array] [port, hostname] def peer_info Socket.unpack_sockaddr_in(get_peername) end private def setup_multicast_socket set_membership(IPAddr.new(MULTICAST_IP).hton + IPAddr.new('0.0.0.0').hton) set_ttl set_reuse_addr end def set_membership(value) set_sock_opt Socket::IPPROTO_IP, Socket::IP_ADD_MEMBERSHIP, value end def set_ttl value = [@ttl].pack('i') set_sock_opt Socket::IPPROTO_IP, Socket::IP_MULTICAST_TTL, value set_sock_opt Socket::IPPROTO_IP, Socket::IP_TTL, value end def set_reuse_addr set_sock_opt Socket::SOL_SOCKET, Socket::SO_REUSEADDR, true end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rupnp-0.3.0 | lib/rupnp/ssdp/multicast_connection.rb |
rupnp-0.2.2 | lib/rupnp/ssdp/multicast_connection.rb |