method
unix_path
v2_1_10 -
Show latest stable
- Class:
Addrinfo
unix_path()public
static VALUE
addrinfo_unix_path(VALUE self)
{
rb_addrinfo_t *rai = get_addrinfo(self);
int family = ai_get_afamily(rai);
struct sockaddr_un *addr;
char *s, *e;
if (family != AF_UNIX)
rb_raise(rb_eSocket, "need AF_UNIX address");
addr = &rai->addr.un;
s = addr->sun_path;
e = (char*)addr + rai->sockaddr_len;
if (e < s)
rb_raise(rb_eSocket, "too short AF_UNIX address: %"PRIuSIZE" bytes given for minimum %"PRIuSIZE" bytes.",
(size_t)rai->sockaddr_len, (size_t)(s - (char *)addr));
if (addr->sun_path + sizeof(addr->sun_path) < e)
rb_raise(rb_eSocket,
"too long AF_UNIX path (%"PRIuSIZE" bytes given but %"PRIuSIZE" bytes max)",
(size_t)(e - addr->sun_path), sizeof(addr->sun_path));
while (s < e && *(e-1) == '\0')
e--;
return rb_str_new(s, e-s);
} Related methods
- Instance methods
- afamily
- bind
- canonname
- connect
- connect_from
- connect_to
- family_addrinfo
- getnameinfo
- inspect
- inspect_sockaddr
- ip?
- ip_address
- ip_port
- ip_unpack
- ipv4?
- ipv4_loopback?
- ipv4_multicast?
- ipv4_private?
- ipv6?
- ipv6_linklocal?
- ipv6_loopback?
- ipv6_mc_global?
- ipv6_mc_linklocal?
- ipv6_mc_nodelocal?
- ipv6_mc_orglocal?
- ipv6_mc_sitelocal?
- ipv6_multicast?
- ipv6_sitelocal?
- ipv6_to_ipv4
- ipv6_unique_local?
- ipv6_unspecified?
- ipv6_v4compat?
- ipv6_v4mapped?
- listen
- marshal_dump
- marshal_load
- pfamily
- protocol
- socktype
- to_s
- to_sockaddr
- unix?
- unix_path
- Class methods
- foreach
- getaddrinfo
- ip
- new
- tcp
- udp
- unix
- Private methods
-
connect_internal