#include "rubysocket.h"Go to the source code of this file.
Data Structures | |
| struct | getaddrinfo_arg |
| struct | getnameinfo_arg |
| struct | hostent_arg |
| struct | rb_addrinfo_t |
Defines | |
| #define | addrinfo_free RUBY_TYPED_DEFAULT_FREE |
| #define | IS_ADDRINFO(obj) rb_typeddata_is_kind_of((obj), &addrinfo_type) |
Functions | |
| static int | str_is_number (const char *) |
| static VALUE | nogvl_getaddrinfo (void *arg) |
| int | rb_getaddrinfo (const char *node, const char *service, const struct addrinfo *hints, struct addrinfo **res) |
| static VALUE | nogvl_getnameinfo (void *arg) |
| int | rb_getnameinfo (const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags) |
| static void | make_ipaddr0 (struct sockaddr *addr, char *buf, size_t len) |
| VALUE | rsock_make_ipaddr (struct sockaddr *addr) |
| static void | make_inetaddr (unsigned int host, char *buf, size_t len) |
| static char * | host_str (VALUE host, char *hbuf, size_t len, int *flags_ptr) |
| static char * | port_str (VALUE port, char *pbuf, size_t len, int *flags_ptr) |
| struct addrinfo * | rsock_getaddrinfo (VALUE host, VALUE port, struct addrinfo *hints, int socktype_hack) |
| struct addrinfo * | rsock_addrinfo (VALUE host, VALUE port, int socktype, int flags) |
| VALUE | rsock_ipaddr (struct sockaddr *sockaddr, int norevlookup) |
| VALUE | rsock_unixpath_str (struct sockaddr_un *sockaddr, socklen_t len) |
| VALUE | rsock_unixaddr (struct sockaddr_un *sockaddr, socklen_t len) |
| socklen_t | rsock_unix_sockaddr_len (VALUE path) |
| static VALUE | make_hostent_internal (struct hostent_arg *arg) |
| VALUE | rsock_freeaddrinfo (struct addrinfo *addr) |
| VALUE | rsock_make_hostent (VALUE host, struct addrinfo *addr, VALUE(*ipaddr)(struct sockaddr *, size_t)) |
| static void | addrinfo_mark (void *ptr) |
| static size_t | addrinfo_memsize (const void *ptr) |
| static VALUE | addrinfo_s_allocate (VALUE klass) |
| static rb_addrinfo_t * | check_addrinfo (VALUE self) |
| static rb_addrinfo_t * | get_addrinfo (VALUE self) |
| static rb_addrinfo_t * | alloc_addrinfo () |
| static void | init_addrinfo (rb_addrinfo_t *rai, struct sockaddr *sa, socklen_t len, int pfamily, int socktype, int protocol, VALUE canonname, VALUE inspectname) |
| VALUE | rsock_addrinfo_new (struct sockaddr *addr, socklen_t len, int family, int socktype, int protocol, VALUE canonname, VALUE inspectname) |
| static struct addrinfo * | call_getaddrinfo (VALUE node, VALUE service, VALUE family, VALUE socktype, VALUE protocol, VALUE flags, int socktype_hack) |
| static VALUE | make_inspectname (VALUE node, VALUE service, struct addrinfo *res) |
| static void | init_addrinfo_getaddrinfo (rb_addrinfo_t *rai, VALUE node, VALUE service, VALUE family, VALUE socktype, VALUE protocol, VALUE flags, VALUE inspectnode, VALUE inspectservice) |
| static VALUE | addrinfo_firstonly_new (VALUE node, VALUE service, VALUE family, VALUE socktype, VALUE protocol, VALUE flags) |
| static VALUE | addrinfo_list_new (VALUE node, VALUE service, VALUE family, VALUE socktype, VALUE protocol, VALUE flags) |
| static void | init_unix_addrinfo (rb_addrinfo_t *rai, VALUE path, int socktype) |
| static VALUE | addrinfo_initialize (int argc, VALUE *argv, VALUE self) |
| static int | get_afamily (struct sockaddr *addr, socklen_t len) |
| static int | ai_get_afamily (rb_addrinfo_t *rai) |
| static VALUE | inspect_sockaddr (VALUE addrinfo, VALUE ret) |
| static VALUE | addrinfo_inspect (VALUE self) |
| static VALUE | addrinfo_inspect_sockaddr (VALUE self) |
| static VALUE | addrinfo_mdump (VALUE self) |
| static VALUE | addrinfo_mload (VALUE self, VALUE ary) |
| static VALUE | addrinfo_afamily (VALUE self) |
| static VALUE | addrinfo_pfamily (VALUE self) |
| static VALUE | addrinfo_socktype (VALUE self) |
| static VALUE | addrinfo_protocol (VALUE self) |
| static VALUE | addrinfo_to_sockaddr (VALUE self) |
| static VALUE | addrinfo_canonname (VALUE self) |
| static VALUE | addrinfo_ip_p (VALUE self) |
| static VALUE | addrinfo_ipv4_p (VALUE self) |
| static VALUE | addrinfo_ipv6_p (VALUE self) |
| static VALUE | addrinfo_unix_p (VALUE self) |
| static VALUE | addrinfo_getnameinfo (int argc, VALUE *argv, VALUE self) |
| static VALUE | addrinfo_ip_unpack (VALUE self) |
| static VALUE | addrinfo_ip_address (VALUE self) |
| static VALUE | addrinfo_ip_port (VALUE self) |
| static int | extract_in_addr (VALUE self, uint32_t *addrp) |
| static VALUE | addrinfo_ipv4_private_p (VALUE self) |
| static VALUE | addrinfo_ipv4_loopback_p (VALUE self) |
| static VALUE | addrinfo_ipv4_multicast_p (VALUE self) |
| static struct in6_addr * | extract_in6_addr (VALUE self) |
| static VALUE | addrinfo_ipv6_unspecified_p (VALUE self) |
| static VALUE | addrinfo_ipv6_loopback_p (VALUE self) |
| static VALUE | addrinfo_ipv6_multicast_p (VALUE self) |
| static VALUE | addrinfo_ipv6_linklocal_p (VALUE self) |
| static VALUE | addrinfo_ipv6_sitelocal_p (VALUE self) |
| static VALUE | addrinfo_ipv6_v4mapped_p (VALUE self) |
| static VALUE | addrinfo_ipv6_v4compat_p (VALUE self) |
| static VALUE | addrinfo_ipv6_mc_nodelocal_p (VALUE self) |
| static VALUE | addrinfo_ipv6_mc_linklocal_p (VALUE self) |
| static VALUE | addrinfo_ipv6_mc_sitelocal_p (VALUE self) |
| static VALUE | addrinfo_ipv6_mc_orglocal_p (VALUE self) |
| static VALUE | addrinfo_ipv6_mc_global_p (VALUE self) |
| static VALUE | addrinfo_ipv6_to_ipv4 (VALUE self) |
| static VALUE | addrinfo_unix_path (VALUE self) |
| static VALUE | addrinfo_s_getaddrinfo (int argc, VALUE *argv, VALUE self) |
| static VALUE | addrinfo_s_ip (VALUE self, VALUE host) |
| static VALUE | addrinfo_s_tcp (VALUE self, VALUE host, VALUE port) |
| static VALUE | addrinfo_s_udp (VALUE self, VALUE host, VALUE port) |
| static VALUE | addrinfo_s_unix (int argc, VALUE *argv, VALUE self) |
| VALUE | rsock_sockaddr_string_value (volatile VALUE *v) |
| char * | rsock_sockaddr_string_value_ptr (volatile VALUE *v) |
| VALUE | rb_check_sockaddr_string_type (VALUE val) |
| VALUE | rsock_fd_socket_addrinfo (int fd, struct sockaddr *addr, socklen_t len) |
| VALUE | rsock_io_socket_addrinfo (VALUE io, struct sockaddr *addr, socklen_t len) |
| void | rsock_init_addrinfo (void) |
Variables | |
| static const rb_data_type_t | addrinfo_type |
| #define addrinfo_free RUBY_TYPED_DEFAULT_FREE |
Definition at line 563 of file raddrinfo.c.
| #define IS_ADDRINFO | ( | obj | ) | rb_typeddata_is_kind_of((obj), &addrinfo_type) |
Definition at line 582 of file raddrinfo.c.
Referenced by rb_check_sockaddr_string_type(), and rsock_sockaddr_string_value().
Definition at line 1379 of file raddrinfo.c.
References ai_get_afamily(), get_addrinfo(), and INT2NUM().
Referenced by rsock_init_addrinfo().
Definition at line 1470 of file raddrinfo.c.
References rb_addrinfo_t::canonname, and get_addrinfo().
Referenced by rsock_init_addrinfo().
| static VALUE addrinfo_firstonly_new | ( | VALUE | node, | |
| VALUE | service, | |||
| VALUE | family, | |||
| VALUE | socktype, | |||
| VALUE | protocol, | |||
| VALUE | flags | |||
| ) | [static] |
Definition at line 738 of file raddrinfo.c.
References addrinfo::ai_addr, addrinfo::ai_addrlen, addrinfo::ai_canonname, addrinfo::ai_family, addrinfo::ai_protocol, addrinfo::ai_socktype, call_getaddrinfo(), freeaddrinfo, make_inspectname(), OBJ_FREEZE, Qnil, rb_tainted_str_new_cstr(), and rsock_addrinfo_new().
Referenced by addrinfo_s_ip(), addrinfo_s_tcp(), and addrinfo_s_udp().
Definition at line 1577 of file raddrinfo.c.
References rb_addrinfo_t::addr, get_addrinfo(), getnameinfo, NI_DGRAM, NIL_P, NUM2INT, rb_assoc_new(), rb_scan_args(), rb_str_new2, rsock_raise_socket_error(), rb_addrinfo_t::sockaddr_len, and rb_addrinfo_t::socktype.
Referenced by addrinfo_ip_address(), addrinfo_ip_unpack(), and rsock_init_addrinfo().
Definition at line 867 of file raddrinfo.c.
References AI_NUMERICHOST, AI_NUMERICSERV, alloc_addrinfo(), check_addrinfo(), DATA_PTR, init_addrinfo(), init_addrinfo_getaddrinfo(), init_unix_addrinfo(), INT2NUM(), NIL_P, NUM2INT, PF_UNSPEC, Qnil, rb_ary_entry(), rb_check_array_type(), rb_eSocket, rb_eTypeError, rb_raise(), rb_scan_args(), rsock_family_arg(), rsock_family_to_int(), rsock_socktype_arg(), RSTRING_LEN, RSTRING_LENINT, RSTRING_PTR, StringValue, and StringValueCStr.
Referenced by rsock_init_addrinfo().
Definition at line 1096 of file raddrinfo.c.
References ai_get_afamily(), rb_addrinfo_t::canonname, get_addrinfo(), inspect_sockaddr(), rb_addrinfo_t::inspectname, IPPROTO_TCP, IPPROTO_UDP, name, NIL_P, PF_INET, rb_addrinfo_t::pfamily, rb_addrinfo_t::protocol, rb_id2name(), rb_obj_classname(), rb_sprintf(), rb_str_buf_cat2(), rb_str_cat2(), rb_str_catf(), rsock_intern_ipproto(), rsock_intern_protocol_family(), rsock_intern_socktype(), rb_addrinfo_t::socktype, and StringValueCStr.
Referenced by rsock_init_addrinfo().
Definition at line 1176 of file raddrinfo.c.
References inspect_sockaddr(), and rb_str_new().
Referenced by rsock_init_addrinfo().
Definition at line 1638 of file raddrinfo.c.
References addrinfo_getnameinfo(), ai_get_afamily(), get_addrinfo(), INT2NUM(), IS_IP_FAMILY, NI_NUMERICHOST, NI_NUMERICSERV, rb_ary_entry(), rb_eSocket, and rb_raise().
Referenced by rsock_init_addrinfo().
Definition at line 1489 of file raddrinfo.c.
References ai_get_afamily(), get_addrinfo(), IS_IP_FAMILY, Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1663 of file raddrinfo.c.
References rb_addrinfo_t::addr, ai_get_afamily(), get_addrinfo(), INT2NUM(), IS_IP_FAMILY, rb_eSocket, rb_raise(), and rb_addrinfo_t::sockaddr_len.
Referenced by rsock_init_addrinfo().
Definition at line 1611 of file raddrinfo.c.
References addrinfo_getnameinfo(), ai_get_afamily(), get_addrinfo(), INT2NUM(), IS_IP_FAMILY, NI_NUMERICHOST, NI_NUMERICSERV, rb_ary_entry(), rb_ary_store(), rb_eSocket, rb_raise(), and StringValueCStr.
Referenced by rsock_init_addrinfo().
Definition at line 1731 of file raddrinfo.c.
References extract_in_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1745 of file raddrinfo.c.
References extract_in_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1509 of file raddrinfo.c.
References ai_get_afamily(), get_addrinfo(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1715 of file raddrinfo.c.
References extract_in_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1806 of file raddrinfo.c.
References extract_in6_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1782 of file raddrinfo.c.
References extract_in6_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1902 of file raddrinfo.c.
References extract_in6_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1866 of file raddrinfo.c.
References extract_in6_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1854 of file raddrinfo.c.
References extract_in6_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1890 of file raddrinfo.c.
References extract_in6_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1878 of file raddrinfo.c.
References extract_in6_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1794 of file raddrinfo.c.
References extract_in6_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1528 of file raddrinfo.c.
References ai_get_afamily(), get_addrinfo(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1818 of file raddrinfo.c.
References extract_in6_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1920 of file raddrinfo.c.
References rb_addrinfo_t::addr, ai_get_afamily(), rb_addrinfo_t::canonname, get_addrinfo(), rb_addrinfo_t::inspectname, MEMZERO, PF_INET, rb_addrinfo_t::protocol, Qnil, rsock_addrinfo_new(), SET_SIN_LEN, and rb_addrinfo_t::socktype.
Referenced by rsock_init_addrinfo().
Definition at line 1770 of file raddrinfo.c.
References extract_in6_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1842 of file raddrinfo.c.
References extract_in6_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1830 of file raddrinfo.c.
References extract_in6_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
| static VALUE addrinfo_list_new | ( | VALUE | node, | |
| VALUE | service, | |||
| VALUE | family, | |||
| VALUE | socktype, | |||
| VALUE | protocol, | |||
| VALUE | flags | |||
| ) | [static] |
Definition at line 763 of file raddrinfo.c.
References addrinfo::ai_addr, addrinfo::ai_addrlen, addrinfo::ai_canonname, addrinfo::ai_family, addrinfo::ai_next, addrinfo::ai_protocol, addrinfo::ai_socktype, call_getaddrinfo(), freeaddrinfo, make_inspectname(), OBJ_FREEZE, Qnil, rb_ary_new(), rb_ary_push(), rb_tainted_str_new_cstr(), and rsock_addrinfo_new().
Referenced by addrinfo_s_getaddrinfo().
| static void addrinfo_mark | ( | void * | ptr | ) | [static] |
Definition at line 554 of file raddrinfo.c.
References rb_addrinfo_t::canonname, rb_addrinfo_t::inspectname, and rb_gc_mark().
Definition at line 1183 of file raddrinfo.c.
References rb_addrinfo_t::addr, ai_get_afamily(), rb_addrinfo_t::canonname, get_addrinfo(), getnameinfo, id, rb_addrinfo_t::inspectname, INT2FIX, IS_IP_FAMILY, NI_MAXHOST, NI_MAXSERV, NI_NUMERICHOST, NI_NUMERICSERV, rb_addrinfo_t::pfamily, rb_addrinfo_t::protocol, rb_ary_new3(), rb_assoc_new(), rb_eSocket, rb_id2str(), rb_raise(), rb_str_new(), rb_str_new_cstr(), rsock_intern_family(), rsock_intern_ipproto(), rsock_intern_protocol_family(), rsock_intern_socktype(), rsock_raise_socket_error(), rb_addrinfo_t::sockaddr_len, and rb_addrinfo_t::socktype.
Referenced by rsock_init_addrinfo().
| static size_t addrinfo_memsize | ( | const void * | ptr | ) | [static] |
Definition at line 566 of file raddrinfo.c.
Definition at line 1260 of file raddrinfo.c.
References addrinfo::ai_addr, addrinfo::ai_addrlen, AI_NUMERICHOST, AI_NUMERICSERV, alloc_addrinfo(), call_getaddrinfo(), check_addrinfo(), DATA_PTR, init_addrinfo(), INT2FIX, INT2NUM(), IS_IP_FAMILY, len, MEMZERO, NIL_P, PRIuSIZE, Qnil, rb_ary_entry(), rb_convert_type(), rb_eSocket, rb_eTypeError, rb_raise(), rsock_family_to_int(), rsock_ipproto_to_int(), rsock_socktype_to_int(), RSTRING_LEN, RSTRING_PTR, StringValue, and T_ARRAY.
Referenced by rsock_init_addrinfo().
Definition at line 1395 of file raddrinfo.c.
References get_addrinfo(), INT2NUM(), and rb_addrinfo_t::pfamily.
Referenced by rsock_init_addrinfo().
Definition at line 1427 of file raddrinfo.c.
References get_addrinfo(), INT2NUM(), and rb_addrinfo_t::protocol.
Referenced by rsock_init_addrinfo().
Definition at line 577 of file raddrinfo.c.
References TypedData_Wrap_Struct.
Referenced by addrinfo_s_unix(), rsock_addrinfo_new(), and rsock_init_addrinfo().
Definition at line 2013 of file raddrinfo.c.
References addrinfo_list_new(), node, and rb_scan_args().
Referenced by rsock_init_addrinfo().
Definition at line 2033 of file raddrinfo.c.
References addrinfo_firstonly_new(), get_addrinfo(), INT2FIX, INT2NUM(), PF_UNSPEC, rb_addrinfo_t::protocol, Qnil, and rb_addrinfo_t::socktype.
Referenced by rsock_init_addrinfo().
Definition at line 2054 of file raddrinfo.c.
References addrinfo_firstonly_new(), INT2FIX, INT2NUM(), IPPROTO_TCP, and PF_UNSPEC.
Referenced by rsock_init_addrinfo().
Definition at line 2069 of file raddrinfo.c.
References addrinfo_firstonly_new(), INT2FIX, INT2NUM(), IPPROTO_UDP, and PF_UNSPEC.
Referenced by rsock_init_addrinfo().
Definition at line 2090 of file raddrinfo.c.
References addrinfo_s_allocate(), alloc_addrinfo(), DATA_PTR, init_unix_addrinfo(), NIL_P, OBJ_INFECT, rb_cAddrinfo, rb_scan_args(), and rsock_socktype_arg().
Referenced by rsock_init_addrinfo().
Definition at line 1411 of file raddrinfo.c.
References get_addrinfo(), INT2NUM(), and rb_addrinfo_t::socktype.
Referenced by rsock_init_addrinfo().
Definition at line 1445 of file raddrinfo.c.
References rb_addrinfo_t::addr, get_addrinfo(), OBJ_INFECT, rb_str_new(), and rb_addrinfo_t::sockaddr_len.
Referenced by rb_check_sockaddr_string_type(), rsock_init_addrinfo(), and rsock_sockaddr_string_value().
Definition at line 1551 of file raddrinfo.c.
References ai_get_afamily(), get_addrinfo(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1954 of file raddrinfo.c.
References rb_addrinfo_t::addr, ai_get_afamily(), get_addrinfo(), rb_eSocket, rb_raise(), rb_str_new(), and rb_addrinfo_t::sockaddr_len.
Referenced by rsock_init_addrinfo().
| static int ai_get_afamily | ( | rb_addrinfo_t * | rai | ) | [static] |
Definition at line 956 of file raddrinfo.c.
References rb_addrinfo_t::addr, get_afamily(), and rb_addrinfo_t::sockaddr_len.
Referenced by addrinfo_afamily(), addrinfo_inspect(), addrinfo_ip_address(), addrinfo_ip_p(), addrinfo_ip_port(), addrinfo_ip_unpack(), addrinfo_ipv4_p(), addrinfo_ipv6_p(), addrinfo_ipv6_to_ipv4(), addrinfo_mdump(), addrinfo_unix_p(), addrinfo_unix_path(), extract_in6_addr(), and extract_in_addr().
| static rb_addrinfo_t* alloc_addrinfo | ( | ) | [static] |
Definition at line 602 of file raddrinfo.c.
References ALLOC, rb_addrinfo_t::canonname, rb_addrinfo_t::inspectname, and Qnil.
Referenced by addrinfo_initialize(), addrinfo_mload(), addrinfo_s_unix(), and rsock_addrinfo_new().
| static struct addrinfo* call_getaddrinfo | ( | VALUE | node, | |
| VALUE | service, | |||
| VALUE | family, | |||
| VALUE | socktype, | |||
| VALUE | protocol, | |||
| VALUE | flags, | |||
| int | socktype_hack | |||
| ) | [static, read] |
Definition at line 643 of file raddrinfo.c.
References addrinfo::ai_family, addrinfo::ai_flags, addrinfo::ai_protocol, addrinfo::ai_socktype, MEMZERO, NIL_P, NULL, NUM2INT, PF_UNSPEC, rb_eSocket, rb_raise(), rsock_family_arg(), rsock_getaddrinfo(), and rsock_socktype_arg().
Referenced by addrinfo_firstonly_new(), addrinfo_list_new(), addrinfo_mload(), and init_addrinfo_getaddrinfo().
| static rb_addrinfo_t* check_addrinfo | ( | VALUE | self | ) | [inline, static] |
Definition at line 584 of file raddrinfo.c.
References rb_check_typeddata().
Referenced by addrinfo_initialize(), addrinfo_mload(), and get_addrinfo().
| static struct in6_addr* extract_in6_addr | ( | VALUE | self | ) | [static, read] |
Definition at line 1757 of file raddrinfo.c.
References rb_addrinfo_t::addr, ai_get_afamily(), get_addrinfo(), and NULL.
Referenced by addrinfo_ipv6_linklocal_p(), addrinfo_ipv6_loopback_p(), addrinfo_ipv6_mc_global_p(), addrinfo_ipv6_mc_linklocal_p(), addrinfo_ipv6_mc_nodelocal_p(), addrinfo_ipv6_mc_orglocal_p(), addrinfo_ipv6_mc_sitelocal_p(), addrinfo_ipv6_multicast_p(), addrinfo_ipv6_sitelocal_p(), addrinfo_ipv6_unspecified_p(), addrinfo_ipv6_v4compat_p(), and addrinfo_ipv6_v4mapped_p().
Definition at line 1701 of file raddrinfo.c.
References rb_addrinfo_t::addr, ai_get_afamily(), and get_addrinfo().
Referenced by addrinfo_ipv4_loopback_p(), addrinfo_ipv4_multicast_p(), and addrinfo_ipv4_private_p().
| static rb_addrinfo_t* get_addrinfo | ( | VALUE | self | ) | [static] |
Definition at line 590 of file raddrinfo.c.
References check_addrinfo(), rb_eTypeError, and rb_raise().
Referenced by addrinfo_afamily(), addrinfo_canonname(), addrinfo_getnameinfo(), addrinfo_inspect(), addrinfo_ip_address(), addrinfo_ip_p(), addrinfo_ip_port(), addrinfo_ip_unpack(), addrinfo_ipv4_p(), addrinfo_ipv6_p(), addrinfo_ipv6_to_ipv4(), addrinfo_mdump(), addrinfo_pfamily(), addrinfo_protocol(), addrinfo_s_ip(), addrinfo_socktype(), addrinfo_to_sockaddr(), addrinfo_unix_p(), addrinfo_unix_path(), extract_in6_addr(), extract_in_addr(), and inspect_sockaddr().
| static int get_afamily | ( | struct sockaddr * | addr, | |
| socklen_t | len | |||
| ) | [static] |
Definition at line 947 of file raddrinfo.c.
References AF_UNSPEC.
Referenced by ai_get_afamily(), and rsock_fd_socket_addrinfo().
| static char* host_str | ( | VALUE | host, | |
| char * | hbuf, | |||
| size_t | len, | |||
| int * | flags_ptr | |||
| ) | [static] |
Definition at line 287 of file raddrinfo.c.
References AI_NUMERICHOST, INADDR_ANY, INADDR_BROADCAST, make_inetaddr(), name, NIL_P, NULL, NUM2UINT, PRIuSIZE, rb_cInteger, rb_eArgError, rb_obj_is_kind_of(), rb_raise(), RSTRING_PTR, SafeStringValue, and strlen().
Referenced by make_hostent_internal(), and rsock_getaddrinfo().
| static void init_addrinfo | ( | rb_addrinfo_t * | rai, | |
| struct sockaddr * | sa, | |||
| socklen_t | len, | |||
| int | pfamily, | |||
| int | socktype, | |||
| int | protocol, | |||
| VALUE | canonname, | |||
| VALUE | inspectname | |||
| ) | [static] |
Definition at line 612 of file raddrinfo.c.
References rb_addrinfo_t::addr, rb_addrinfo_t::canonname, rb_addrinfo_t::inspectname, rb_addrinfo_t::pfamily, rb_addrinfo_t::protocol, rb_eArgError, rb_raise(), rb_addrinfo_t::sockaddr_len, and rb_addrinfo_t::socktype.
Referenced by addrinfo_initialize(), addrinfo_mload(), init_addrinfo_getaddrinfo(), init_unix_addrinfo(), and rsock_addrinfo_new().
| static void init_addrinfo_getaddrinfo | ( | rb_addrinfo_t * | rai, | |
| VALUE | node, | |||
| VALUE | service, | |||
| VALUE | family, | |||
| VALUE | socktype, | |||
| VALUE | protocol, | |||
| VALUE | flags, | |||
| VALUE | inspectnode, | |||
| VALUE | inspectservice | |||
| ) | [static] |
Definition at line 671 of file raddrinfo.c.
References addrinfo::ai_addr, addrinfo::ai_addrlen, addrinfo::ai_canonname, call_getaddrinfo(), freeaddrinfo, init_addrinfo(), make_inspectname(), NUM2INT, OBJ_FREEZE, Qnil, rb_str_equal(), and rb_tainted_str_new_cstr().
Referenced by addrinfo_initialize().
| static void init_unix_addrinfo | ( | rb_addrinfo_t * | rai, | |
| VALUE | path, | |||
| int | socktype | |||
| ) | [static] |
Definition at line 797 of file raddrinfo.c.
References init_addrinfo(), len, MEMZERO, PRIuSIZE, Qnil, rb_eArgError, rb_raise(), rsock_unix_sockaddr_len(), RSTRING_LEN, RSTRING_PTR, and StringValue.
Referenced by addrinfo_initialize(), and addrinfo_s_unix().
Definition at line 962 of file raddrinfo.c.
References rb_addrinfo_t::addr, get_addrinfo(), getnameinfo, ISPRINT, ISSPACE, NI_NUMERICHOST, NI_NUMERICSERV, NULL, rb_id2name(), rb_str_cat(), rb_str_cat2(), rb_str_catf(), rsock_intern_family(), rsock_raise_socket_error(), and rb_addrinfo_t::sockaddr_len.
Referenced by addrinfo_inspect(), and addrinfo_inspect_sockaddr().
| static VALUE make_hostent_internal | ( | struct hostent_arg * | arg | ) | [static] |
Definition at line 482 of file raddrinfo.c.
References hostent_arg::addr, addrinfo::ai_canonname, addrinfo::ai_family, addrinfo::ai_next, hostent_arg::host, host_str(), INT2NUM(), hostent_arg::ipaddr, names, NI_MAXHOST, NULL, rb_ary_new(), rb_ary_new2(), rb_ary_push(), and rb_str_new2.
Referenced by rsock_make_hostent().
| static void make_inetaddr | ( | unsigned int | host, | |
| char * | buf, | |||
| size_t | len | |||
| ) | [static] |
Definition at line 260 of file raddrinfo.c.
References make_ipaddr0(), MEMZERO, and SET_SIN_LEN.
Referenced by host_str().
Definition at line 693 of file raddrinfo.c.
References addrinfo::ai_addr, addrinfo::ai_addrlen, FIX2INT, NI_MAXHOST, NI_MAXSERV, NI_NUMERICHOST, NI_NUMERICSERV, NIL_P, OBJ_FREEZE, OBJ_INFECT, Qnil, rb_getnameinfo(), rb_sprintf(), rb_str_catf(), rb_str_dup(), RSTRING_PTR, StringValueCStr, T_FIXNUM, T_STRING, and TYPE.
Referenced by addrinfo_firstonly_new(), addrinfo_list_new(), and init_addrinfo_getaddrinfo().
| static void make_ipaddr0 | ( | struct sockaddr * | addr, | |
| char * | buf, | |||
| size_t | len | |||
| ) | [static] |
Definition at line 240 of file raddrinfo.c.
References NI_NUMERICHOST, NULL, rb_getnameinfo(), rsock_raise_socket_error(), and SA_LEN.
Referenced by make_inetaddr(), and rsock_make_ipaddr().
| static VALUE nogvl_getaddrinfo | ( | void * | arg | ) | [static] |
Definition at line 158 of file raddrinfo.c.
References EAI_NONAME, EAI_SYSTEM, errno, getaddrinfo, getaddrinfo_arg::hints, getaddrinfo_arg::node, getaddrinfo_arg::res, and getaddrinfo_arg::service.
Referenced by rb_getaddrinfo().
| static VALUE nogvl_getnameinfo | ( | void * | arg | ) | [static] |
Definition at line 207 of file raddrinfo.c.
References getnameinfo_arg::flags, getnameinfo, getnameinfo_arg::host, getnameinfo_arg::hostlen, getnameinfo_arg::sa, getnameinfo_arg::salen, getnameinfo_arg::serv, and getnameinfo_arg::servlen.
Referenced by rb_getnameinfo().
| static char* port_str | ( | VALUE | port, | |
| char * | pbuf, | |||
| size_t | len, | |||
| int * | flags_ptr | |||
| ) | [static] |
Definition at line 324 of file raddrinfo.c.
References AI_NUMERICSERV, FIX2LONG, FIXNUM_P, NIL_P, PRIuSIZE, rb_eArgError, rb_raise(), RSTRING_PTR, SafeStringValue, snprintf, and strlen().
Referenced by rsock_getaddrinfo().
Definition at line 2131 of file raddrinfo.c.
References addrinfo_to_sockaddr(), IS_ADDRINFO, and rb_check_string_type().
Referenced by sock_s_getnameinfo().
| int rb_getaddrinfo | ( | const char * | node, | |
| const char * | service, | |||
| const struct addrinfo * | hints, | |||
| struct addrinfo ** | res | |||
| ) |
Definition at line 175 of file raddrinfo.c.
References BLOCKING_REGION, getaddrinfo, getaddrinfo_arg::hints, MEMZERO, getaddrinfo_arg::node, nogvl_getaddrinfo(), getaddrinfo_arg::res, and getaddrinfo_arg::service.
Referenced by rsock_getaddrinfo(), and sock_s_getnameinfo().
| int rb_getnameinfo | ( | const struct sockaddr * | sa, | |
| socklen_t | salen, | |||
| char * | host, | |||
| size_t | hostlen, | |||
| char * | serv, | |||
| size_t | servlen, | |||
| int | flags | |||
| ) |
Definition at line 218 of file raddrinfo.c.
References BLOCKING_REGION, getnameinfo_arg::flags, getnameinfo, getnameinfo_arg::host, getnameinfo_arg::hostlen, nogvl_getnameinfo(), getnameinfo_arg::sa, getnameinfo_arg::salen, getnameinfo_arg::serv, and getnameinfo_arg::servlen.
Referenced by make_inspectname(), make_ipaddr0(), rsock_ipaddr(), and sock_s_getnameinfo().
Definition at line 379 of file raddrinfo.c.
References AF_UNSPEC, addrinfo::ai_family, addrinfo::ai_flags, addrinfo::ai_socktype, MEMZERO, and rsock_getaddrinfo().
Referenced by init_inetsock_internal(), ip_s_getaddress(), sock_s_gethostbyname(), sock_s_pack_sockaddr_in(), tcp_s_gethostbyname(), udp_bind(), udp_connect(), and udp_send().
| VALUE rsock_addrinfo_new | ( | struct sockaddr * | addr, | |
| socklen_t | len, | |||
| int | family, | |||
| int | socktype, | |||
| int | protocol, | |||
| VALUE | canonname, | |||
| VALUE | inspectname | |||
| ) |
Definition at line 629 of file raddrinfo.c.
References addrinfo_s_allocate(), alloc_addrinfo(), DATA_PTR, init_addrinfo(), and rb_cAddrinfo.
Referenced by addrinfo_firstonly_new(), addrinfo_ipv6_to_ipv4(), addrinfo_list_new(), rsock_fd_socket_addrinfo(), and sockaddr_obj().
| VALUE rsock_fd_socket_addrinfo | ( | int | fd, | |
| struct sockaddr * | addr, | |||
| socklen_t | len | |||
| ) |
Definition at line 2139 of file raddrinfo.c.
References get_afamily(), Qnil, rb_sys_fail, and rsock_addrinfo_new().
Referenced by bsock_local_address(), bsock_remote_address(), and rsock_io_socket_addrinfo().
Definition at line 525 of file raddrinfo.c.
References freeaddrinfo, and Qnil.
Referenced by rsock_make_hostent(), and udp_connect().
| struct addrinfo* rsock_getaddrinfo | ( | VALUE | host, | |
| VALUE | port, | |||
| struct addrinfo * | hints, | |||
| int | socktype_hack | |||
| ) | [read] |
Definition at line 351 of file raddrinfo.c.
References addrinfo::ai_flags, addrinfo::ai_socktype, host_str(), NI_MAXHOST, NI_MAXSERV, NULL, port_str(), rb_eSocket, rb_getaddrinfo(), rb_raise(), rsock_raise_socket_error(), str_is_number(), and strlen().
Referenced by call_getaddrinfo(), rsock_addrinfo(), and sock_s_getaddrinfo().
| void rsock_init_addrinfo | ( | void | ) |
Definition at line 2182 of file raddrinfo.c.
References addrinfo_afamily(), addrinfo_canonname(), addrinfo_getnameinfo(), addrinfo_initialize(), addrinfo_inspect(), addrinfo_inspect_sockaddr(), addrinfo_ip_address(), addrinfo_ip_p(), addrinfo_ip_port(), addrinfo_ip_unpack(), addrinfo_ipv4_loopback_p(), addrinfo_ipv4_multicast_p(), addrinfo_ipv4_p(), addrinfo_ipv4_private_p(), addrinfo_ipv6_linklocal_p(), addrinfo_ipv6_loopback_p(), addrinfo_ipv6_mc_global_p(), addrinfo_ipv6_mc_linklocal_p(), addrinfo_ipv6_mc_nodelocal_p(), addrinfo_ipv6_mc_orglocal_p(), addrinfo_ipv6_mc_sitelocal_p(), addrinfo_ipv6_multicast_p(), addrinfo_ipv6_p(), addrinfo_ipv6_sitelocal_p(), addrinfo_ipv6_to_ipv4(), addrinfo_ipv6_unspecified_p(), addrinfo_ipv6_v4compat_p(), addrinfo_ipv6_v4mapped_p(), addrinfo_mdump(), addrinfo_mload(), addrinfo_pfamily(), addrinfo_protocol(), addrinfo_s_allocate(), addrinfo_s_getaddrinfo(), addrinfo_s_ip(), addrinfo_s_tcp(), addrinfo_s_udp(), addrinfo_s_unix(), addrinfo_socktype(), addrinfo_to_sockaddr(), addrinfo_unix_p(), addrinfo_unix_path(), rb_cAddrinfo, rb_cData, rb_define_alloc_func(), rb_define_class(), rb_define_method(), and rb_define_singleton_method().
Referenced by rsock_init_socket_init().
Definition at line 2158 of file raddrinfo.c.
References rb_io_t::fd, FIX2INT, GetOpenFile, NUM2INT, rb_eTypeError, rb_raise(), rsock_fd_socket_addrinfo(), T_BIGNUM, T_FILE, T_FIXNUM, and TYPE.
Referenced by rsock_s_recvfrom(), rsock_s_recvfrom_nonblock(), sock_accept(), sock_accept_nonblock(), and sock_sysaccept().
| VALUE rsock_ipaddr | ( | struct sockaddr * | sockaddr, | |
| int | norevlookup | |||
| ) |
Definition at line 391 of file raddrinfo.c.
References id, INT2FIX, NI_NUMERICHOST, NI_NUMERICSERV, NULL, Qnil, rb_ary_new3(), rb_getnameinfo(), rb_id2str(), rb_str_dup(), rb_str_new2, rsock_intern_family(), rsock_raise_socket_error(), and SA_LEN.
Referenced by ip_addr(), ip_peeraddr(), make_addrinfo(), rsock_s_recvfrom(), and rsock_s_recvfrom_nonblock().
| VALUE rsock_make_hostent | ( | VALUE | host, | |
| struct addrinfo * | addr, | |||
| VALUE(*)(struct sockaddr *, size_t) | ipaddr | |||
| ) |
Definition at line 532 of file raddrinfo.c.
References hostent_arg::addr, hostent_arg::host, hostent_arg::ipaddr, make_hostent_internal(), rb_ensure(), and rsock_freeaddrinfo().
Referenced by sock_s_gethostbyname(), and tcp_s_gethostbyname().
| VALUE rsock_make_ipaddr | ( | struct sockaddr * | addr | ) |
Definition at line 251 of file raddrinfo.c.
References make_ipaddr0(), and rb_str_new2.
Referenced by ip_s_getaddress(), sock_s_unpack_sockaddr_in(), and tcp_sockaddr().
Definition at line 2113 of file raddrinfo.c.
References addrinfo_to_sockaddr(), IS_ADDRINFO, and StringValue.
Referenced by rsock_sockaddr_string_value_ptr().
| char* rsock_sockaddr_string_value_ptr | ( | volatile VALUE * | v | ) |
Definition at line 2124 of file raddrinfo.c.
References rsock_sockaddr_string_value(), and RSTRING_PTR.
| socklen_t rsock_unix_sockaddr_len | ( | VALUE | path | ) |
Definition at line 454 of file raddrinfo.c.
References offsetof, RSTRING_LEN, and RSTRING_PTR.
Referenced by init_unix_addrinfo(), rsock_init_unixsock(), and sock_s_pack_sockaddr_un().
| VALUE rsock_unixaddr | ( | struct sockaddr_un * | sockaddr, | |
| socklen_t | len | |||
| ) |
Definition at line 447 of file raddrinfo.c.
References rb_assoc_new(), rb_str_new2, and rsock_unixpath_str().
Referenced by rsock_s_recvfrom(), unix_addr(), and unix_peeraddr().
| VALUE rsock_unixpath_str | ( | struct sockaddr_un * | sockaddr, | |
| socklen_t | len | |||
| ) |
Definition at line 433 of file raddrinfo.c.
References rb_str_new(), and rb_str_new2.
Referenced by rsock_unixaddr(), sock_s_unpack_sockaddr_un(), and unix_path().
| static int str_is_number | ( | const char * | p | ) | [static] |
Definition at line 272 of file raddrinfo.c.
Referenced by rsock_getaddrinfo().
const rb_data_type_t addrinfo_type [static] |
{
"socket/addrinfo",
{addrinfo_mark, addrinfo_free, addrinfo_memsize,},
}
Definition at line 571 of file raddrinfo.c.
1.6.1