/* * call-seq: * TCPSocket.gethostbyname(hostname) => [official_hostname, alias_hostnames, address_family, *address_list] * * Lookups host information by _hostname_. * * TCPSocket.gethostbyname("localhost") * #=> ["localhost", ["hal"], 2, "127.0.0.1"] * */ static VALUE tcp_s_gethostbyname(VALUE obj, VALUE host) { rb_secure(3); return rsock_make_hostent(host, rsock_addrinfo(host, Qnil, SOCK_STREAM, AI_CANONNAME), tcp_sockaddr); }
/* * call-seq: * TCPSocket.gethostbyname(hostname) => [official_hostname, alias_hostnames, address_family, *address_list] * * Use Addrinfo.getaddrinfo instead. * This method is deprecated for the following reasons: * * - The 3rd element of the result is the address family of the first address. * The address families of the rest of the addresses are not returned. * - gethostbyname() may take a long time and it may block other threads. * (GVL cannot be released since gethostbyname() is not thread safe.) * - This method uses gethostbyname() function already removed from POSIX. * * This method lookups host information by _hostname_. * * TCPSocket.gethostbyname("localhost") * #=> ["localhost", ["hal"], 2, "127.0.0.1"] * */ static VALUE tcp_s_gethostbyname(VALUE obj, VALUE host) { struct rb_addrinfo *res = rsock_addrinfo(host, Qnil, AF_UNSPEC, SOCK_STREAM, AI_CANONNAME); return rsock_make_hostent(host, res, tcp_sockaddr); }