Ruby
2.0.0p594(2014-10-27revision48167)
|
#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 |
Macros | |
#define | addrinfo_free RUBY_TYPED_DEFAULT_FREE |
#define | IS_ADDRINFO(obj) rb_typeddata_is_kind_of((obj), &addrinfo_type) |
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 1380 of file raddrinfo.c.
References ai_get_afamily(), get_addrinfo(), and INT2NUM.
Referenced by rsock_init_addrinfo().
Definition at line 1471 of file raddrinfo.c.
References rb_addrinfo_t::canonname, and get_addrinfo().
Referenced by rsock_init_addrinfo().
|
static |
Definition at line 739 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(), ret, and rsock_addrinfo_new().
Referenced by addrinfo_s_ip(), addrinfo_s_tcp(), and addrinfo_s_udp().
Definition at line 1578 of file raddrinfo.c.
References rb_addrinfo_t::addr, flags, 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 868 of file raddrinfo.c.
References AI_NUMERICHOST, AI_NUMERICSERV, alloc_addrinfo(), check_addrinfo(), DATA_PTR(), flags, init_addrinfo(), init_addrinfo_getaddrinfo(), 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_socktype_arg(), RSTRING_LEN, RSTRING_LENINT, RSTRING_PTR, StringValue, and StringValueCStr.
Referenced by rsock_init_addrinfo().
Definition at line 1097 of file raddrinfo.c.
References ai_get_afamily(), rb_addrinfo_t::canonname, get_addrinfo(), inspect_sockaddr(), rb_addrinfo_t::inspectname, 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(), ret, rb_addrinfo_t::socktype, and StringValueCStr.
Referenced by rsock_init_addrinfo().
Definition at line 1177 of file raddrinfo.c.
References inspect_sockaddr(), and rb_str_new().
Referenced by rsock_init_addrinfo().
Definition at line 1639 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, rb_raise(), and ret.
Referenced by rsock_init_addrinfo().
Definition at line 1490 of file raddrinfo.c.
References ai_get_afamily(), get_addrinfo(), IS_IP_FAMILY, Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1664 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 1612 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(), ret, and StringValueCStr.
Referenced by rsock_init_addrinfo().
Definition at line 1732 of file raddrinfo.c.
References a, extract_in_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1746 of file raddrinfo.c.
References a, extract_in_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1510 of file raddrinfo.c.
References ai_get_afamily(), get_addrinfo(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1716 of file raddrinfo.c.
References a, extract_in_addr(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
Definition at line 1529 of file raddrinfo.c.
References ai_get_afamily(), get_addrinfo(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
|
static |
Definition at line 764 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, r, rb_ary_new(), rb_ary_push(), rb_tainted_str_new_cstr(), ret, and rsock_addrinfo_new().
Referenced by addrinfo_s_getaddrinfo().
Definition at line 554 of file raddrinfo.c.
References rb_addrinfo_t::canonname, rb_addrinfo_t::inspectname, ptr, and rb_gc_mark().
Definition at line 1184 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_raise_socket_error(), rb_addrinfo_t::sockaddr_len, and rb_addrinfo_t::socktype.
Referenced by rsock_init_addrinfo().
Definition at line 566 of file raddrinfo.c.
Definition at line 1261 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, memcpy(), MEMZERO, NIL_P(), pair, Qnil, rb_ary_entry(), rb_convert_type(), rb_eSocket, rb_eTypeError, rb_raise(), res, RSTRING_LEN, RSTRING_PTR, StringValue, T_ARRAY, and v.
Referenced by rsock_init_addrinfo().
Definition at line 1396 of file raddrinfo.c.
References get_addrinfo(), INT2NUM, and rb_addrinfo_t::pfamily.
Referenced by rsock_init_addrinfo().
Definition at line 1428 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 rsock_addrinfo_new(), and rsock_init_addrinfo().
Definition at line 2038 of file raddrinfo.c.
References addrinfo_list_new(), flags, and rb_scan_args().
Referenced by rsock_init_addrinfo().
Definition at line 2058 of file raddrinfo.c.
References addrinfo_firstonly_new(), get_addrinfo(), INT2FIX, INT2NUM, PF_UNSPEC, rb_addrinfo_t::protocol, Qnil, ret, and rb_addrinfo_t::socktype.
Referenced by rsock_init_addrinfo().
Definition at line 2079 of file raddrinfo.c.
References addrinfo_firstonly_new(), INT2FIX, INT2NUM, and PF_UNSPEC.
Referenced by rsock_init_addrinfo().
Definition at line 2094 of file raddrinfo.c.
References addrinfo_firstonly_new(), INT2FIX, INT2NUM, and PF_UNSPEC.
Referenced by rsock_init_addrinfo().
Definition at line 1412 of file raddrinfo.c.
References get_addrinfo(), INT2NUM, and rb_addrinfo_t::socktype.
Referenced by rsock_init_addrinfo().
Definition at line 1446 of file raddrinfo.c.
References rb_addrinfo_t::addr, get_addrinfo(), OBJ_INFECT, rb_str_new(), ret, and rb_addrinfo_t::sockaddr_len.
Referenced by rb_check_sockaddr_string_type(), rsock_init_addrinfo(), and rsock_sockaddr_string_value().
Definition at line 1552 of file raddrinfo.c.
References ai_get_afamily(), get_addrinfo(), Qfalse, and Qtrue.
Referenced by rsock_init_addrinfo().
|
static |
Definition at line 957 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_mdump(), addrinfo_unix_p(), and extract_in_addr().
|
static |
Definition at line 602 of file raddrinfo.c.
References ALLOC, rb_addrinfo_t::canonname, rb_addrinfo_t::inspectname, memset(), and Qnil.
Referenced by addrinfo_initialize(), addrinfo_mload(), and rsock_addrinfo_new().
|
static |
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(), res, rsock_family_arg(), rsock_getaddrinfo(), and rsock_socktype_arg().
Referenced by addrinfo_firstonly_new(), addrinfo_list_new(), addrinfo_mload(), and init_addrinfo_getaddrinfo().
|
inlinestatic |
Definition at line 584 of file raddrinfo.c.
References rb_check_typeddata().
Referenced by addrinfo_initialize(), addrinfo_mload(), and get_addrinfo().
Definition at line 1702 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 |
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_mdump(), addrinfo_pfamily(), addrinfo_protocol(), addrinfo_s_ip(), addrinfo_socktype(), addrinfo_to_sockaddr(), addrinfo_unix_p(), extract_in_addr(), and inspect_sockaddr().
|
static |
Definition at line 948 of file raddrinfo.c.
References AF_UNSPEC.
Referenced by ai_get_afamily(), and rsock_fd_socket_addrinfo().
Definition at line 287 of file raddrinfo.c.
References AI_NUMERICHOST, make_inetaddr(), name, NIL_P(), NULL, NUM2UINT, PRIuSIZE, rb_cInteger, rb_eArgError, rb_obj_is_kind_of(), rb_raise(), RSTRING_PTR, SafeStringValue, strcpy(), and strlen().
Referenced by make_hostent_internal(), and rsock_getaddrinfo().
|
static |
Definition at line 612 of file raddrinfo.c.
References rb_addrinfo_t::addr, rb_addrinfo_t::canonname, rb_addrinfo_t::inspectname, len, memcpy(), 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(), and rsock_addrinfo_new().
|
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().
Definition at line 963 of file raddrinfo.c.
References rb_addrinfo_t::addr, get_addrinfo(), getnameinfo(), ISPRINT, ISSPACE, NI_NUMERICHOST, NI_NUMERICSERV, NULL, p, rb_id2name(), rb_str_cat(), rb_str_cat2(), rb_str_catf(), ret, rsock_raise_socket_error(), s, rb_addrinfo_t::sockaddr_len, and sockaddr_storage::ss_family.
Referenced by addrinfo_inspect(), and addrinfo_inspect_sockaddr().
|
static |
Definition at line 482 of file raddrinfo.c.
References hostent_arg::addr, addrinfo::ai_canonname, addrinfo::ai_family, addrinfo::ai_next, ary, 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().
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(), RB_TYPE_P, ret, RSTRING_PTR, StringValueCStr, T_FIXNUM, and T_STRING.
Referenced by addrinfo_firstonly_new(), addrinfo_list_new(), and init_addrinfo_getaddrinfo().
|
static |
Definition at line 240 of file raddrinfo.c.
References NI_NUMERICHOST, NULL, rb_getnameinfo(), and rsock_raise_socket_error().
Referenced by make_inetaddr(), and rsock_make_ipaddr().
Definition at line 158 of file raddrinfo.c.
References arg, EAI_NONAME, EAI_SYSTEM, errno, getaddrinfo(), getaddrinfo_arg::hints, getaddrinfo_arg::node, ptr, getaddrinfo_arg::res, ret, and getaddrinfo_arg::service.
Referenced by rb_getaddrinfo().
Definition at line 207 of file raddrinfo.c.
References arg, getnameinfo_arg::flags, getnameinfo(), getnameinfo_arg::host, getnameinfo_arg::hostlen, ptr, getnameinfo_arg::sa, getnameinfo_arg::salen, getnameinfo_arg::serv, and getnameinfo_arg::servlen.
Referenced by rb_getnameinfo().
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, strcpy(), and strlen().
Referenced by rsock_getaddrinfo().
Definition at line 2156 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 getaddrinfo(), getaddrinfo_arg::hints, int, MEMZERO, getaddrinfo_arg::node, nogvl_getaddrinfo(), rb_thread_call_without_gvl(), getaddrinfo_arg::res, res, ret, RUBY_UBF_IO, 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 getnameinfo_arg::flags, flags, getnameinfo(), getnameinfo_arg::host, getnameinfo_arg::hostlen, int, nogvl_getnameinfo(), rb_thread_call_without_gvl(), ret, RUBY_UBF_IO, 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, flags, 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 a, addrinfo_s_allocate(), alloc_addrinfo(), DATA_PTR(), init_addrinfo(), and rb_cAddrinfo.
Referenced by addrinfo_firstonly_new(), addrinfo_list_new(), and rsock_fd_socket_addrinfo().
Definition at line 2164 of file raddrinfo.c.
References get_afamily(), Qnil, rb_sys_fail(), ret, 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 | ||
) |
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(), res, rsock_raise_socket_error(), str_is_number(), and strlen().
Referenced by call_getaddrinfo(), rsock_addrinfo(), and sock_s_getaddrinfo().
Definition at line 2209 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_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_socktype(), addrinfo_to_sockaddr(), addrinfo_unix_p(), 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 2183 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, TYPE, and UNREACHABLE.
Referenced by rsock_s_recvfrom(), rsock_s_recvfrom_nonblock(), sock_accept(), sock_accept_nonblock(), and sock_sysaccept().
Definition at line 391 of file raddrinfo.c.
References ary, id, INT2FIX, NI_NUMERICHOST, NI_NUMERICSERV, NULL, Qnil, rb_ary_new3(), rb_getnameinfo(), rb_id2str(), rb_str_dup(), rb_str_new2, and rsock_raise_socket_error().
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, |
socklen_t | addrlen | ||
) |
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 2138 of file raddrinfo.c.
References addrinfo_to_sockaddr(), IS_ADDRINFO, StringValue, v, and val.
Referenced by rsock_sockaddr_string_value_ptr().
char* rsock_sockaddr_string_value_ptr | ( | volatile VALUE * | v | ) |
Definition at line 2149 of file raddrinfo.c.
References rsock_sockaddr_string_value(), and RSTRING_PTR.
Definition at line 272 of file raddrinfo.c.
References NULL, STRTOUL, and void.
Referenced by rsock_getaddrinfo().
|
static |
Definition at line 571 of file raddrinfo.c.