ext/socket/socket.c File Reference

#include "rubysocket.h"

Go to the source code of this file.

Defines

#define rsock_sock_s_socketpair   rb_f_notimplement
#define sock_gethostname   rb_f_notimplement
#define socket_s_ip_address_list   rb_f_notimplement

Functions

static VALUE sock_s_unpack_sockaddr_in (VALUE, VALUE)
void rsock_sys_fail_host_port (const char *mesg, VALUE host, VALUE port)
void rsock_syserr_fail_host_port (int err, const char *mesg, VALUE host, VALUE port)
void rsock_sys_fail_path (const char *mesg, VALUE path)
void rsock_syserr_fail_path (int err, const char *mesg, VALUE path)
void rsock_sys_fail_sockaddr (const char *mesg, struct sockaddr *addr, socklen_t len)
void rsock_syserr_fail_sockaddr (int err, const char *mesg, struct sockaddr *addr, socklen_t len)
void rsock_sys_fail_raddrinfo (const char *mesg, VALUE rai)
void rsock_syserr_fail_raddrinfo (int err, const char *mesg, VALUE rai)
void rsock_sys_fail_raddrinfo_or_sockaddr (const char *mesg, VALUE addr, VALUE rai)
void rsock_syserr_fail_raddrinfo_or_sockaddr (int err, const char *mesg, VALUE addr, VALUE rai)
static void setup_domain_and_type (VALUE domain, int *dv, VALUE type, int *tv)
static VALUE sock_initialize (int argc, VALUE *argv, VALUE sock)
static VALUE sock_connect (VALUE sock, VALUE addr)
static VALUE sock_connect_nonblock (VALUE sock, VALUE addr)
static VALUE sock_bind (VALUE sock, VALUE addr)
VALUE rsock_sock_listen (VALUE sock, VALUE log)
static VALUE sock_recvfrom (int argc, VALUE *argv, VALUE sock)
static VALUE sock_recvfrom_nonblock (int argc, VALUE *argv, VALUE sock)
static VALUE sock_accept (VALUE sock)
static VALUE sock_accept_nonblock (VALUE sock)
static VALUE sock_sysaccept (VALUE sock)
static VALUE make_addrinfo (struct rb_addrinfo *res0, int norevlookup)
static VALUE sock_sockaddr (struct sockaddr *addr, socklen_t len)
static VALUE sock_s_gethostbyname (VALUE obj, VALUE host)
static VALUE sock_s_gethostbyaddr (int argc, VALUE *argv)
static VALUE sock_s_getservbyname (int argc, VALUE *argv)
static VALUE sock_s_getservbyport (int argc, VALUE *argv)
static VALUE sock_s_getaddrinfo (int argc, VALUE *argv)
static VALUE sock_s_getnameinfo (int argc, VALUE *argv)
static VALUE sock_s_pack_sockaddr_in (VALUE self, VALUE port, VALUE host)
void Init_socket ()


Define Documentation

#define rsock_sock_s_socketpair   rb_f_notimplement

Definition at line 292 of file socket.c.

Referenced by Init_socket().

#define sock_gethostname   rb_f_notimplement

Definition at line 1037 of file socket.c.

Referenced by Init_socket().

#define socket_s_ip_address_list   rb_f_notimplement

Definition at line 2003 of file socket.c.

Referenced by Init_socket().


Function Documentation

void Init_socket (  ) 

Definition at line 2007 of file socket.c.

References rb_cBasicSocket, rb_cSocket, rb_define_class(), rb_define_method(), rb_define_singleton_method(), rsock_init_basicsocket(), rsock_init_socket_init(), rsock_sock_listen(), rsock_sock_s_socketpair, sock_accept(), sock_accept_nonblock(), sock_bind(), sock_connect(), sock_connect_nonblock(), sock_gethostname, sock_initialize(), sock_recvfrom(), sock_recvfrom_nonblock(), sock_s_getaddrinfo(), sock_s_gethostbyaddr(), sock_s_gethostbyname(), sock_s_getnameinfo(), sock_s_getservbyname(), sock_s_getservbyport(), sock_s_pack_sockaddr_in(), sock_s_unpack_sockaddr_in(), sock_sysaccept(), and socket_s_ip_address_list.

static VALUE make_addrinfo ( struct rb_addrinfo res0,
int  norevlookup 
) [static]

Definition at line 1042 of file socket.c.

References rb_addrinfo::ai, addrinfo::ai_addr, addrinfo::ai_addrlen, addrinfo::ai_canonname, addrinfo::ai_family, addrinfo::ai_next, addrinfo::ai_protocol, addrinfo::ai_socktype, INT2FIX, NULL, RARRAY_PTR, rb_ary_new(), rb_ary_push(), rb_eSocket, rb_raise(), rb_str_new2, rsock_ipaddr(), and VALUE.

Referenced by sock_s_getaddrinfo().

VALUE rsock_sock_listen ( VALUE  sock,
VALUE  log 
)

Definition at line 659 of file socket.c.

References rb_io_t::fd, GetOpenFile, INT2FIX, NUM2INT, and rb_sys_fail().

Referenced by Init_socket(), rsock_init_tcpserver(), and rsock_init_unixserver().

void rsock_sys_fail_host_port ( const char *  mesg,
VALUE  host,
VALUE  port 
)

Definition at line 16 of file socket.c.

References errno, and rsock_syserr_fail_host_port().

Referenced by init_inetsock_internal(), udp_bind(), udp_connect(), and udp_send().

void rsock_sys_fail_path ( const char *  mesg,
VALUE  path 
)

Definition at line 35 of file socket.c.

References errno, and rsock_syserr_fail_path().

Referenced by bsock_getsockopt(), and bsock_setsockopt().

void rsock_sys_fail_raddrinfo ( const char *  mesg,
VALUE  rai 
)

Definition at line 79 of file socket.c.

References errno, and rsock_syserr_fail_raddrinfo().

void rsock_sys_fail_raddrinfo_or_sockaddr ( const char *  mesg,
VALUE  addr,
VALUE  rai 
)

Definition at line 96 of file socket.c.

References errno, and rsock_syserr_fail_raddrinfo_or_sockaddr().

Referenced by sock_bind(), sock_connect(), and sock_connect_nonblock().

void rsock_sys_fail_sockaddr ( const char *  mesg,
struct sockaddr *  addr,
socklen_t  len 
)

Definition at line 63 of file socket.c.

References errno, and rsock_syserr_fail_sockaddr().

void rsock_syserr_fail_host_port ( int  err,
const char *  mesg,
VALUE  host,
VALUE  port 
)

Definition at line 22 of file socket.c.

References rb_sprintf(), rb_String(), rb_syserr_fail_str(), StringValueCStr, and VALUE.

Referenced by rsock_sys_fail_host_port().

void rsock_syserr_fail_path ( int  err,
const char *  mesg,
VALUE  path 
)

Definition at line 41 of file socket.c.

References rb_sprintf(), rb_str_inspect(), rb_syserr_fail(), rb_syserr_fail_str(), RB_TYPE_P, RSTRING_LEN, RSTRING_PTR, StringValueCStr, T_STRING, and VALUE.

Referenced by rsock_sys_fail_path().

void rsock_syserr_fail_raddrinfo ( int  err,
const char *  mesg,
VALUE  rai 
)

Definition at line 85 of file socket.c.

References rb_sprintf(), rb_syserr_fail_str(), rsock_addrinfo_inspect_sockaddr(), StringValueCStr, and VALUE.

Referenced by rsock_sys_fail_raddrinfo(), rsock_syserr_fail_raddrinfo_or_sockaddr(), and rsock_syserr_fail_sockaddr().

void rsock_syserr_fail_raddrinfo_or_sockaddr ( int  err,
const char *  mesg,
VALUE  addr,
VALUE  rai 
)

Definition at line 102 of file socket.c.

References NIL_P, rsock_syserr_fail_raddrinfo(), rsock_syserr_fail_sockaddr(), RSTRING_LEN, RSTRING_PTR, and StringValue.

Referenced by rsock_sys_fail_raddrinfo_or_sockaddr().

void rsock_syserr_fail_sockaddr ( int  err,
const char *  mesg,
struct sockaddr *  addr,
socklen_t  len 
)

Definition at line 69 of file socket.c.

References PF_UNSPEC, Qnil, rsock_addrinfo_new(), rsock_syserr_fail_raddrinfo(), and VALUE.

Referenced by rsock_sys_fail_sockaddr(), and rsock_syserr_fail_raddrinfo_or_sockaddr().

static void setup_domain_and_type ( VALUE  domain,
int *  dv,
VALUE  type,
int *  tv 
) [static]

Definition at line 116 of file socket.c.

References rsock_family_arg(), and rsock_socktype_arg().

Referenced by sock_initialize().

static VALUE sock_accept ( VALUE  sock  )  [static]

Definition at line 866 of file socket.c.

References buf, rb_io_t::fd, GetOpenFile, len, rb_assoc_new(), rb_cSocket, rsock_io_socket_addrinfo(), rsock_s_accept(), and VALUE.

Referenced by Init_socket().

static VALUE sock_accept_nonblock ( VALUE  sock  )  [static]

Definition at line 931 of file socket.c.

References buf, GetOpenFile, len, rb_assoc_new(), rb_cSocket, rsock_io_socket_addrinfo(), rsock_s_accept_nonblock(), and VALUE.

Referenced by Init_socket().

static VALUE sock_bind ( VALUE  sock,
VALUE  addr 
) [static]

Definition at line 575 of file socket.c.

References rb_io_t::fd, GetOpenFile, INT2FIX, rsock_sys_fail_raddrinfo_or_sockaddr(), RSTRING_PTR, RSTRING_SOCKLEN, SockAddrStringValueWithAddrinfo, and VALUE.

Referenced by Init_socket().

static VALUE sock_connect ( VALUE  sock,
VALUE  addr 
) [static]

Definition at line 407 of file socket.c.

References rb_io_t::fd, GetOpenFile, INT2FIX, rb_str_new4, rsock_connect(), rsock_sys_fail_raddrinfo_or_sockaddr(), RSTRING_PTR, RSTRING_SOCKLEN, SockAddrStringValueWithAddrinfo, and VALUE.

Referenced by Init_socket().

static VALUE sock_connect_nonblock ( VALUE  sock,
VALUE  addr 
) [static]

Definition at line 468 of file socket.c.

References EINPROGRESS, errno, rb_io_t::fd, GetOpenFile, INT2FIX, rb_io_set_nonblock(), RB_IO_WAIT_WRITABLE, rb_readwrite_sys_fail(), rb_str_new4, rsock_sys_fail_raddrinfo_or_sockaddr(), RSTRING_PTR, RSTRING_SOCKLEN, SockAddrStringValueWithAddrinfo, and VALUE.

Referenced by Init_socket().

static VALUE sock_initialize ( int  argc,
VALUE *  argv,
VALUE  sock 
) [static]

Definition at line 141 of file socket.c.

References INT2FIX, NIL_P, NUM2INT, rb_scan_args(), rb_secure(), rb_sys_fail(), rsock_init_sock(), rsock_socket(), setup_domain_and_type(), type, and VALUE.

Referenced by Init_socket().

static VALUE sock_recvfrom ( int  argc,
VALUE *  argv,
VALUE  sock 
) [static]

Definition at line 778 of file socket.c.

References RECV_SOCKET, and rsock_s_recvfrom().

Referenced by Init_socket().

static VALUE sock_recvfrom_nonblock ( int  argc,
VALUE *  argv,
VALUE  sock 
) [static]

Definition at line 846 of file socket.c.

References RECV_SOCKET, and rsock_s_recvfrom_nonblock().

Referenced by Init_socket().

static VALUE sock_s_getaddrinfo ( int  argc,
VALUE *  argv 
) [static]

Definition at line 1271 of file socket.c.

References addrinfo::ai_family, addrinfo::ai_flags, addrinfo::ai_protocol, addrinfo::ai_socktype, make_addrinfo(), MEMZERO, NIL_P, NUM2INT, PF_UNSPEC, rb_freeaddrinfo(), rb_scan_args(), rsock_do_not_reverse_lookup, rsock_family_arg(), rsock_getaddrinfo(), rsock_revlookup_flag(), rsock_socktype_arg(), and VALUE.

Referenced by Init_socket().

static VALUE sock_s_gethostbyaddr ( int  argc,
VALUE *  argv 
) [static]

Definition at line 1113 of file socket.c.

References INT2NUM, names, NIL_P, NULL, rb_ary_new(), rb_ary_push(), rb_eSocket, rb_raise(), rb_scan_args(), rb_str_new(), rb_str_new2, rsock_family_arg(), RSTRING_LEN, RSTRING_PTR, RSTRING_SOCKLEN, StringValue, and VALUE.

Referenced by Init_socket().

static VALUE sock_s_gethostbyname ( VALUE  obj,
VALUE  host 
) [static]

Definition at line 1097 of file socket.c.

References AI_CANONNAME, Qnil, rb_secure(), rsock_addrinfo(), rsock_make_hostent(), and sock_sockaddr().

Referenced by Init_socket().

static VALUE sock_s_getnameinfo ( int  argc,
VALUE *  argv 
) [static]

Definition at line 1325 of file socket.c.

References rb_addrinfo::ai, addrinfo::ai_addr, addrinfo::ai_addrlen, addrinfo::ai_family, addrinfo::ai_flags, addrinfo::ai_next, AI_NUMERICHOST, addrinfo::ai_socktype, errno, FIXNUM_P, MEMZERO, NI_DGRAM, NIL_P, NULL, NUM2INT, NUM2LONG, PF_UNSPEC, Qnil, RARRAY_LEN, RARRAY_PTR, rb_assoc_new(), rb_check_array_type(), rb_check_sockaddr_string_type(), rb_eArgError, rb_eSocket, rb_eTypeError, rb_freeaddrinfo(), rb_getaddrinfo(), rb_getnameinfo(), rb_raise(), rb_scan_args(), rb_str_new2, rsock_family_arg(), rsock_raise_socket_error(), RSTRING_LEN, RSTRING_PTR, RSTRING_SOCKLEN, snprintf, StringValuePtr, UNREACHABLE, VALIDATE_SOCKLEN, and VALUE.

Referenced by Init_socket().

static VALUE sock_s_getservbyname ( int  argc,
VALUE *  argv 
) [static]

Definition at line 1175 of file socket.c.

References INT2FIX, NIL_P, proto, rb_eSocket, rb_raise(), rb_scan_args(), StringValue, StringValueCStr, STRTOUL, and VALUE.

Referenced by Init_socket().

static VALUE sock_s_getservbyport ( int  argc,
VALUE *  argv 
) [static]

Definition at line 1216 of file socket.c.

References NIL_P, NUM2LONG, proto, rb_eRangeError, rb_eSocket, rb_raise(), rb_scan_args(), rb_tainted_str_new2, StringValueCStr, and VALUE.

Referenced by Init_socket().

static VALUE sock_s_pack_sockaddr_in ( VALUE  self,
VALUE  port,
VALUE  host 
) [static]

Definition at line 1476 of file socket.c.

References rb_addrinfo::ai, addrinfo::ai_addr, addrinfo::ai_addrlen, OBJ_INFECT, rb_freeaddrinfo(), rb_str_new(), rsock_addrinfo(), and VALUE.

Referenced by Init_socket().

static VALUE sock_s_unpack_sockaddr_in ( VALUE  ,
VALUE   
) [static]

Definition at line 1502 of file socket.c.

References INT2NUM, OBJ_INFECT, rb_assoc_new(), rb_eArgError, rb_raise(), rsock_make_ipaddr(), RSTRING_LEN, RSTRING_SOCKLEN, SockAddrStringValuePtr, and VALUE.

Referenced by Init_socket().

static VALUE sock_sockaddr ( struct sockaddr *  addr,
socklen_t  len 
) [static]

Definition at line 1065 of file socket.c.

References rb_eSocket, rb_raise(), and rb_str_new().

Referenced by sock_s_gethostbyname().

static VALUE sock_sysaccept ( VALUE  sock  )  [static]

Definition at line 982 of file socket.c.

References buf, rb_io_t::fd, GetOpenFile, len, rb_assoc_new(), rsock_io_socket_addrinfo(), rsock_s_accept(), and VALUE.

Referenced by Init_socket().


Generated on 19 Jul 2016 for Ruby by  doxygen 1.4.7