Ruby  2.5.0dev(2017-10-22revision60238)
Data Structures | Macros | Functions
raddrinfo.c File Reference
#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 str_equal(ptr, len, name)
 
#define SafeStringValueCStr(v)
 
#define addrinfo_free   RUBY_TYPED_DEFAULT_FREE
 
#define IS_ADDRINFO(obj)   rb_typeddata_is_kind_of((obj), &addrinfo_type)
 

Functions

int rb_getaddrinfo (const char *node, const char *service, const struct addrinfo *hints, struct rb_addrinfo **res)
 
void rb_freeaddrinfo (struct rb_addrinfo *ai)
 
int rb_getnameinfo (const struct sockaddr *sa, socklen_t salen, char *host, size_t hostlen, char *serv, size_t servlen, int flags)
 
VALUE rsock_make_ipaddr (struct sockaddr *addr, socklen_t addrlen)
 
struct rb_addrinforsock_getaddrinfo (VALUE host, VALUE port, struct addrinfo *hints, int socktype_hack)
 
int rsock_fd_family (int fd)
 
struct rb_addrinforsock_addrinfo (VALUE host, VALUE port, int family, int socktype, int flags)
 
VALUE rsock_ipaddr (struct sockaddr *sockaddr, socklen_t sockaddrlen, int norevlookup)
 
VALUE rsock_freeaddrinfo (VALUE arg)
 
VALUE rsock_make_hostent (VALUE host, struct rb_addrinfo *addr, VALUE(*ipaddr)(struct sockaddr *, socklen_t))
 
VALUE rsock_addrinfo_new (struct sockaddr *addr, socklen_t len, int family, int socktype, int protocol, VALUE canonname, VALUE inspectname)
 
VALUE rsock_inspect_sockaddr (struct sockaddr *sockaddr_arg, socklen_t socklen, VALUE ret)
 
VALUE rsock_addrinfo_inspect_sockaddr (VALUE self)
 
VALUE rsock_sockaddr_string_value (volatile VALUE *v)
 
VALUE rsock_sockaddr_string_value_with_addrinfo (volatile VALUE *v, VALUE *rai_ret)
 
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)
 

Macro Definition Documentation

◆ addrinfo_free

#define addrinfo_free   RUBY_TYPED_DEFAULT_FREE

Definition at line 733 of file raddrinfo.c.

◆ IS_ADDRINFO

#define IS_ADDRINFO (   obj)    rb_typeddata_is_kind_of((obj), &addrinfo_type)

◆ SafeStringValueCStr

#define SafeStringValueCStr (   v)
Value:
do {\
StringValueCStr(v);\
rb_check_safe_obj(v);\
} while(0)

Definition at line 432 of file raddrinfo.c.

◆ str_equal

#define str_equal (   ptr,
  len,
  name 
)
Value:
((ptr)[0] == name[0] && \
rb_strlen_lit(name) == (len) && memcmp(ptr, name, len) == 0)
#define rb_strlen_lit(str)
Definition: intern.h:845
int memcmp(const void *s1, const void *s2, size_t len)
Definition: memcmp.c:7
register unsigned int len
Definition: zonetab.h:51
const char * name
Definition: nkf.c:208

Definition at line 429 of file raddrinfo.c.

Function Documentation

◆ rb_check_sockaddr_string_type()

VALUE rb_check_sockaddr_string_type ( VALUE  val)

Definition at line 2507 of file raddrinfo.c.

References IS_ADDRINFO.

◆ rb_freeaddrinfo()

void rb_freeaddrinfo ( struct rb_addrinfo ai)

◆ rb_getaddrinfo()

int rb_getaddrinfo ( const char *  node,
const char *  service,
const struct addrinfo hints,
struct rb_addrinfo **  res 
)

Definition at line 288 of file raddrinfo.c.

◆ rb_getnameinfo()

int rb_getnameinfo ( const struct sockaddr *  sa,
socklen_t  salen,
char *  host,
size_t  hostlen,
char *  serv,
size_t  servlen,
int  flags 
)

◆ rsock_addrinfo()

struct rb_addrinfo* rsock_addrinfo ( VALUE  host,
VALUE  port,
int  family,
int  socktype,
int  flags 
)

◆ rsock_addrinfo_inspect_sockaddr()

VALUE rsock_addrinfo_inspect_sockaddr ( VALUE  self)

Definition at line 1517 of file raddrinfo.c.

Referenced by rsock_syserr_fail_raddrinfo().

◆ rsock_addrinfo_new()

VALUE rsock_addrinfo_new ( struct sockaddr *  addr,
socklen_t  len,
int  family,
int  socktype,
int  protocol,
VALUE  canonname,
VALUE  inspectname 
)

Definition at line 798 of file raddrinfo.c.

Referenced by rsock_syserr_fail_sockaddr().

◆ rsock_fd_family()

int rsock_fd_family ( int  fd)

Definition at line 534 of file raddrinfo.c.

References AF_UNSPEC, and offsetof.

◆ rsock_fd_socket_addrinfo()

VALUE rsock_fd_socket_addrinfo ( int  fd,
struct sockaddr *  addr,
socklen_t  len 
)

Definition at line 2515 of file raddrinfo.c.

Referenced by rsock_io_socket_addrinfo().

◆ rsock_freeaddrinfo()

VALUE rsock_freeaddrinfo ( VALUE  arg)

Definition at line 696 of file raddrinfo.c.

References Qnil, and rb_freeaddrinfo().

◆ rsock_getaddrinfo()

struct rb_addrinfo* rsock_getaddrinfo ( VALUE  host,
VALUE  port,
struct addrinfo hints,
int  socktype_hack 
)

Definition at line 506 of file raddrinfo.c.

References NI_MAXHOST, NI_MAXSERV, and NULL.

Referenced by rsock_addrinfo().

◆ rsock_init_addrinfo()

void rsock_init_addrinfo ( void  )

Definition at line 2560 of file raddrinfo.c.

References rb_cAddrinfo, rb_cData, rb_define_alloc_func(), and rb_define_class().

Referenced by rsock_init_socket_init().

◆ rsock_inspect_sockaddr()

VALUE rsock_inspect_sockaddr ( struct sockaddr *  sockaddr_arg,
socklen_t  socklen,
VALUE  ret 
)

◆ rsock_io_socket_addrinfo()

VALUE rsock_io_socket_addrinfo ( VALUE  io,
struct sockaddr *  addr,
socklen_t  len 
)

◆ rsock_ipaddr()

VALUE rsock_ipaddr ( struct sockaddr *  sockaddr,
socklen_t  sockaddrlen,
int  norevlookup 
)

◆ rsock_make_hostent()

VALUE rsock_make_hostent ( VALUE  host,
struct rb_addrinfo addr,
VALUE(*)(struct sockaddr *, socklen_t ipaddr 
)

Definition at line 704 of file raddrinfo.c.

References hostent_arg::addr, hostent_arg::host, hostent_arg::ipaddr, and rb_ensure().

◆ rsock_make_ipaddr()

VALUE rsock_make_ipaddr ( struct sockaddr *  addr,
socklen_t  addrlen 
)

Definition at line 396 of file raddrinfo.c.

◆ rsock_sockaddr_string_value()

VALUE rsock_sockaddr_string_value ( volatile VALUE v)

Definition at line 2476 of file raddrinfo.c.

References IS_ADDRINFO, and val.

Referenced by rsock_sockaddr_string_value_ptr().

◆ rsock_sockaddr_string_value_ptr()

char* rsock_sockaddr_string_value_ptr ( volatile VALUE v)

Definition at line 2500 of file raddrinfo.c.

References rsock_sockaddr_string_value(), and RSTRING_PTR.

◆ rsock_sockaddr_string_value_with_addrinfo()

VALUE rsock_sockaddr_string_value_with_addrinfo ( volatile VALUE v,
VALUE rai_ret 
)

Definition at line 2487 of file raddrinfo.c.

References IS_ADDRINFO, Qnil, and val.