ext/socket/option.c File Reference

#include "rubysocket.h"

Go to the source code of this file.

Defines

#define inspect_ipv4_multicast_loop(a, b, c, d)   inspect_int(a,b,c,d)
#define inspect_ipv4_multicast_ttl(a, b, c, d)   inspect_int(a,b,c,d)
#define IFNAMSIZ   (sizeof(unsigned int)*3+1)

Functions

static VALUE constant_to_sym (int constant, ID(*intern_const)(int))
static VALUE optname_to_sym (int level, int optname)
static VALUE sockopt_initialize (VALUE self, VALUE vfamily, VALUE vlevel, VALUE voptname, VALUE data)
VALUE rsock_sockopt_new (int family, int level, int optname, VALUE data)
static VALUE sockopt_family_m (VALUE self)
static int sockopt_level (VALUE self)
static VALUE sockopt_level_m (VALUE self)
static int sockopt_optname (VALUE self)
static VALUE sockopt_optname_m (VALUE self)
static VALUE sockopt_data (VALUE self)
static VALUE sockopt_s_byte (VALUE klass, VALUE vfamily, VALUE vlevel, VALUE voptname, VALUE vint)
static VALUE sockopt_byte (VALUE self)
static VALUE sockopt_s_int (VALUE klass, VALUE vfamily, VALUE vlevel, VALUE voptname, VALUE vint)
static VALUE sockopt_int (VALUE self)
static VALUE sockopt_s_bool (VALUE klass, VALUE vfamily, VALUE vlevel, VALUE voptname, VALUE vbool)
static VALUE sockopt_bool (VALUE self)
static VALUE sockopt_s_linger (VALUE klass, VALUE vonoff, VALUE vsecs)
static VALUE sockopt_linger (VALUE self)
static VALUE sockopt_s_ipv4_multicast_loop (VALUE klass, VALUE value)
static VALUE sockopt_ipv4_multicast_loop (VALUE self)
static VALUE sockopt_s_ipv4_multicast_ttl (VALUE klass, VALUE value)
static VALUE sockopt_ipv4_multicast_ttl (VALUE self)
static int inspect_int (int level, int optname, VALUE data, VALUE ret)
static int inspect_errno (int level, int optname, VALUE data, VALUE ret)
static int inspect_timeval_as_interval (int level, int optname, VALUE data, VALUE ret)
static const char * inet_ntop (int af, const void *addr, char *numaddr, size_t numaddr_len)
static int rb_if_indextoname (const char *succ_prefix, const char *fail_prefix, unsigned int ifindex, char *buf, size_t len)
static VALUE sockopt_inspect (VALUE self)
static VALUE sockopt_unpack (VALUE self, VALUE template)
void rsock_init_sockopt (void)

Variables

VALUE rb_cSockOpt


Define Documentation

#define IFNAMSIZ   (sizeof(unsigned int)*3+1)

Referenced by getifaddrs(), init_constants(), rb_if_indextoname(), and rsock_inspect_sockaddr().

#define inspect_ipv4_multicast_loop ( a,
b,
c,
 )     inspect_int(a,b,c,d)

Definition at line 404 of file option.c.

Referenced by sockopt_inspect().

#define inspect_ipv4_multicast_ttl ( a,
b,
c,
 )     inspect_int(a,b,c,d)

Definition at line 467 of file option.c.

Referenced by sockopt_inspect().


Function Documentation

static VALUE constant_to_sym ( int  constant,
ID(*)(int)  intern_const 
) [static]

Definition at line 6 of file option.c.

References ID2SYM, INT2NUM, and name.

Referenced by optname_to_sym().

static const char* inet_ntop ( int  af,
const void *  addr,
char *  numaddr,
size_t  numaddr_len 
) [static]

Definition at line 628 of file option.c.

References snprintf.

static int inspect_errno ( int  level,
int  optname,
VALUE  data,
VALUE  ret 
) [static]

Definition at line 499 of file option.c.

References err, rb_str_catf(), RSTRING_LEN, RSTRING_PTR, and strerror().

Referenced by sockopt_inspect().

static int inspect_int ( int  level,
int  optname,
VALUE  data,
VALUE  ret 
) [static]

Definition at line 471 of file option.c.

References rb_str_catf(), RSTRING_LEN, and RSTRING_PTR.

Referenced by sockopt_inspect().

static int inspect_timeval_as_interval ( int  level,
int  optname,
VALUE  data,
VALUE  ret 
) [static]

Definition at line 573 of file option.c.

References rb_str_catf(), RSTRING_LEN, and RSTRING_PTR.

Referenced by sockopt_inspect().

static VALUE optname_to_sym ( int  level,
int  optname 
) [static]

Definition at line 17 of file option.c.

References constant_to_sym(), INT2NUM, IPPROTO_IP, IPPROTO_TCP, IPPROTO_UDP, rsock_intern_ip_optname(), rsock_intern_ipv6_optname(), rsock_intern_so_optname(), rsock_intern_tcp_optname(), and rsock_intern_udp_optname().

Referenced by sockopt_inspect().

static int rb_if_indextoname ( const char *  succ_prefix,
const char *  fail_prefix,
unsigned int  ifindex,
char *  buf,
size_t  len 
) [static]

Definition at line 648 of file option.c.

References IFNAMSIZ, NULL, and snprintf.

void rsock_init_sockopt ( void   ) 

Definition at line 1087 of file option.c.

References rb_cObject, rb_cSocket, rb_cSockOpt, rb_define_class_under(), rb_define_method(), rb_define_singleton_method(), sockopt_bool(), sockopt_byte(), sockopt_data(), sockopt_family_m(), sockopt_initialize(), sockopt_inspect(), sockopt_int(), sockopt_ipv4_multicast_loop(), sockopt_ipv4_multicast_ttl(), sockopt_level_m(), sockopt_linger(), sockopt_optname_m(), sockopt_s_bool(), sockopt_s_byte(), sockopt_s_int(), sockopt_s_ipv4_multicast_loop(), sockopt_s_ipv4_multicast_ttl(), sockopt_s_linger(), and sockopt_unpack().

Referenced by rsock_init_socket_init().

VALUE rsock_sockopt_new ( int  family,
int  level,
int  optname,
VALUE  data 
)

Definition at line 62 of file option.c.

References INT2NUM, NEWOBJ_OF, rb_cSockOpt, sockopt_initialize(), StringValue, T_OBJECT, and VALUE.

Referenced by bsock_getsockopt(), sockopt_s_bool(), sockopt_s_byte(), sockopt_s_int(), sockopt_s_ipv4_multicast_loop(), sockopt_s_ipv4_multicast_ttl(), and sockopt_s_linger().

static VALUE sockopt_bool ( VALUE  self  )  [static]

Definition at line 268 of file option.c.

References Qfalse, Qtrue, rb_eTypeError, rb_raise(), RSTRING_LEN, RSTRING_PTR, sockopt_data(), StringValue, and VALUE.

Referenced by rsock_init_sockopt().

static VALUE sockopt_byte ( VALUE  self  )  [static]

Definition at line 178 of file option.c.

References CHR2FIX, rb_eTypeError, rb_raise(), RSTRING_LEN, RSTRING_PTR, sockopt_data(), StringValue, and VALUE.

Referenced by rsock_init_sockopt(), sockopt_ipv4_multicast_loop(), and sockopt_ipv4_multicast_ttl().

static VALUE sockopt_data ( VALUE  self  )  [static]

Definition at line 138 of file option.c.

References rb_attr_get(), rb_intern, StringValue, and VALUE.

Referenced by rsock_init_sockopt(), sockopt_bool(), sockopt_byte(), sockopt_inspect(), sockopt_int(), sockopt_linger(), and sockopt_unpack().

static VALUE sockopt_family_m ( VALUE  self  )  [static]

Definition at line 80 of file option.c.

References rb_attr_get(), and rb_intern.

Referenced by rsock_init_sockopt(), sockopt_inspect(), sockopt_ipv4_multicast_loop(), and sockopt_ipv4_multicast_ttl().

static VALUE sockopt_initialize ( VALUE  self,
VALUE  vfamily,
VALUE  vlevel,
VALUE  voptname,
VALUE  data 
) [static]

Definition at line 48 of file option.c.

References INT2NUM, level, rb_intern, rb_ivar_set(), rsock_family_arg(), rsock_level_arg(), rsock_optname_arg(), and StringValue.

Referenced by rsock_init_sockopt(), and rsock_sockopt_new().

static VALUE sockopt_inspect ( VALUE  self  )  [static]

Definition at line 855 of file option.c.

References AF_UNSPEC, inspect_errno(), inspect_int(), inspect_ipv4_multicast_loop, inspect_ipv4_multicast_ttl, inspect_timeval_as_interval(), IPPROTO_IP, IPPROTO_TCP, IS_IP_FAMILY, NUM2INT, optname_to_sym(), rb_id2name(), rb_obj_classname(), rb_sprintf(), rb_str_append(), rb_str_cat2(), rb_str_catf(), rb_str_dump(), rsock_intern_family_noprefix(), rsock_intern_iplevel(), rsock_intern_local_optname(), rsock_intern_so_optname(), sockopt_data(), sockopt_family_m(), sockopt_level_m(), sockopt_optname_m(), StringValue, SYM2ID, SYMBOL_P, and VALUE.

Referenced by rsock_init_sockopt().

static VALUE sockopt_int ( VALUE  self  )  [static]

Definition at line 222 of file option.c.

References INT2NUM, rb_eTypeError, rb_raise(), RSTRING_LEN, RSTRING_PTR, sockopt_data(), StringValue, and VALUE.

Referenced by rsock_init_sockopt(), sockopt_ipv4_multicast_loop(), and sockopt_ipv4_multicast_ttl().

static VALUE sockopt_ipv4_multicast_loop ( VALUE  self  )  [static]

Definition at line 382 of file option.c.

References IPPROTO_IP, level, NUM2INT, rb_eTypeError, rb_raise(), sockopt_byte(), sockopt_family_m(), sockopt_int(), sockopt_level(), sockopt_optname(), and UNREACHABLE.

Referenced by rsock_init_sockopt().

static VALUE sockopt_ipv4_multicast_ttl ( VALUE  self  )  [static]

Definition at line 445 of file option.c.

References IPPROTO_IP, level, NUM2INT, rb_eTypeError, rb_raise(), sockopt_byte(), sockopt_family_m(), sockopt_int(), sockopt_level(), sockopt_optname(), and UNREACHABLE.

Referenced by rsock_init_sockopt().

static int sockopt_level ( VALUE  self  )  [static]

Definition at line 86 of file option.c.

References NUM2INT, rb_attr_get(), and rb_intern.

Referenced by sockopt_ipv4_multicast_loop(), sockopt_ipv4_multicast_ttl(), sockopt_level_m(), and sockopt_linger().

static VALUE sockopt_level_m ( VALUE  self  )  [static]

Definition at line 101 of file option.c.

References INT2NUM, and sockopt_level().

Referenced by rsock_init_sockopt(), and sockopt_inspect().

static VALUE sockopt_linger ( VALUE  self  )  [static]

Definition at line 318 of file option.c.

References INT2NUM, level, Qfalse, Qtrue, rb_assoc_new(), rb_eTypeError, rb_raise(), RSTRING_LEN, RSTRING_PTR, sockopt_data(), sockopt_level(), sockopt_optname(), and VALUE.

Referenced by rsock_init_sockopt().

static int sockopt_optname ( VALUE  self  )  [static]

Definition at line 107 of file option.c.

References NUM2INT, rb_attr_get(), and rb_intern.

Referenced by sockopt_ipv4_multicast_loop(), sockopt_ipv4_multicast_ttl(), sockopt_linger(), and sockopt_optname_m().

static VALUE sockopt_optname_m ( VALUE  self  )  [static]

Definition at line 122 of file option.c.

References INT2NUM, and sockopt_optname().

Referenced by rsock_init_sockopt(), and sockopt_inspect().

static VALUE sockopt_s_bool ( VALUE  klass,
VALUE  vfamily,
VALUE  vlevel,
VALUE  voptname,
VALUE  vbool 
) [static]

Definition at line 249 of file option.c.

References level, rb_str_new(), rsock_family_arg(), rsock_level_arg(), rsock_optname_arg(), rsock_sockopt_new(), and RTEST.

Referenced by rsock_init_sockopt().

static VALUE sockopt_s_byte ( VALUE  klass,
VALUE  vfamily,
VALUE  vlevel,
VALUE  voptname,
VALUE  vint 
) [static]

Definition at line 157 of file option.c.

References level, NUM2CHR, rb_str_new(), rsock_family_arg(), rsock_level_arg(), rsock_optname_arg(), and rsock_sockopt_new().

Referenced by rsock_init_sockopt().

static VALUE sockopt_s_int ( VALUE  klass,
VALUE  vfamily,
VALUE  vlevel,
VALUE  voptname,
VALUE  vint 
) [static]

Definition at line 201 of file option.c.

References level, NUM2INT, rb_str_new(), rsock_family_arg(), rsock_level_arg(), rsock_optname_arg(), and rsock_sockopt_new().

Referenced by rsock_init_sockopt().

static VALUE sockopt_s_ipv4_multicast_loop ( VALUE  klass,
VALUE  value 
) [static]

Definition at line 357 of file option.c.

References IPPROTO_IP, NUM2CHR, NUM2INT, rb_str_new(), rb_to_int(), and rsock_sockopt_new().

Referenced by rsock_init_sockopt().

static VALUE sockopt_s_ipv4_multicast_ttl ( VALUE  klass,
VALUE  value 
) [static]

Definition at line 420 of file option.c.

References IPPROTO_IP, NUM2CHR, NUM2INT, rb_str_new(), rb_to_int(), and rsock_sockopt_new().

Referenced by rsock_init_sockopt().

static VALUE sockopt_s_linger ( VALUE  klass,
VALUE  vonoff,
VALUE  vsecs 
) [static]

Definition at line 295 of file option.c.

References AF_UNSPEC, NIL_P, NUM2INT, rb_check_to_integer(), rb_str_new(), rsock_sockopt_new(), RTEST, and VALUE.

Referenced by rsock_init_sockopt().

static VALUE sockopt_unpack ( VALUE  self,
VALUE  template 
) [static]

Definition at line 1081 of file option.c.

References rb_funcall(), rb_intern, and sockopt_data().

Referenced by rsock_init_sockopt().


Variable Documentation

VALUE rb_cSockOpt

Definition at line 3 of file option.c.

Referenced by rsock_init_sockopt(), and rsock_sockopt_new().


Generated on 19 Jul 2016 for Ruby by  doxygen 1.4.7