method
inspect
v1_9_2_180 -
Show latest stable
- Class:
Addrinfo
inspect()public
returns a string which shows addrinfo in human-readable form.
Addrinfo.tcp("localhost", 80).inspect #=> "#<Addrinfo: 127.0.0.1:80 TCP (localhost:80)>" Addrinfo.unix("/tmp/sock").inspect #=> "#<Addrinfo: /tmp/sock SOCK_STREAM>"
static VALUE
addrinfo_inspect(VALUE self)
{
rb_addrinfo_t *rai = get_addrinfo(self);
int internet_p;
VALUE ret;
ret = rb_sprintf("#<%s: ", rb_obj_classname(self));
inspect_sockaddr(self, ret);
if (rai->pfamily && ai_get_afamily(rai) != rai->pfamily) {
ID id = rsock_intern_protocol_family(rai->pfamily);
if (id)
rb_str_catf(ret, " %s", rb_id2name(id));
else
rb_str_catf(ret, " PF_\?\?\?(%d)", rai->pfamily);
}
internet_p = rai->pfamily == PF_INET;
#ifdef INET6
internet_p = internet_p || rai->pfamily == PF_INET6;
#endif
if (internet_p && rai->socktype == SOCK_STREAM &&
(rai->protocol == 0 || rai->protocol == IPPROTO_TCP)) {
rb_str_cat2(ret, " TCP");
}
else if (internet_p && rai->socktype == SOCK_DGRAM &&
(rai->protocol == 0 || rai->protocol == IPPROTO_UDP)) {
rb_str_cat2(ret, " UDP");
}
else {
if (rai->socktype) {
ID id = rsock_intern_socktype(rai->socktype);
if (id)
rb_str_catf(ret, " %s", rb_id2name(id));
else
rb_str_catf(ret, " SOCK_\?\?\?(%d)", rai->socktype);
}
if (rai->protocol) {
if (internet_p) {
ID id = rsock_intern_ipproto(rai->protocol);
if (id)
rb_str_catf(ret, " %s", rb_id2name(id));
else
goto unknown_protocol;
}
else {
unknown_protocol:
rb_str_catf(ret, " UNKNOWN_PROTOCOL(%d)", rai->protocol);
}
}
}
if (!NIL_P(rai->canonname)) {
VALUE name = rai->canonname;
rb_str_catf(ret, " %s", StringValueCStr(name));
}
if (!NIL_P(rai->inspectname)) {
VALUE name = rai->inspectname;
rb_str_catf(ret, " (%s)", StringValueCStr(name));
}
rb_str_buf_cat2(ret, ">");
return ret;
} 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_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