Sha256: ed25c4145de38e98723035a9ea9ea8666b6c2c4dfd2c2573ca5cc7e3d84a8649
Contents?: true
Size: 942 Bytes
Versions: 6
Compression:
Stored size: 942 Bytes
Contents
require 'socket' module UV module Net private def get_sockaddr_and_len sockaddr = FFI::MemoryPointer.new(UV::Sockaddr) len = FFI::MemoryPointer.new(:int) len.put_int(0, UV::Sockaddr.size) [sockaddr, len] end def get_ip_and_port(sockaddr, len=nil) if sockaddr[:sa_family] == Socket::Constants::AF_INET6 len ||= Socket::Constants::INET6_ADDRSTRLEN sockaddr_in6 = UV::SockaddrIn6.new(sockaddr.pointer) ip_ptr = FFI::MemoryPointer.new(:char, len) UV.ip6_name(sockaddr_in6, ip_ptr, len) port = UV.ntohs(sockaddr_in6[:sin6_port]) else len ||= Socket::Constants::INET_ADDRSTRLEN sockaddr_in = UV::SockaddrIn.new(sockaddr.pointer) ip_ptr = FFI::MemoryPointer.new(:char, len) UV.ip4_name(sockaddr_in, ip_ptr, len) port = UV.ntohs(sockaddr_in[:sin_port]) end [ip_ptr.read_string, port] end end end
Version data entries
6 entries across 6 versions & 1 rubygems
Version | Path |
---|---|
uvrb-0.2.0 | lib/uv/net.rb |
uvrb-0.1.4 | lib/uv/net.rb |
uvrb-0.1.3 | lib/uv/net.rb |
uvrb-0.1.2 | lib/uv/net.rb |
uvrb-0.1.1 | lib/uv/net.rb |
uvrb-0.1.0 | lib/uv/net.rb |