Ruby  2.1.10p492(2016-04-01revision54464)
Data Structures | Macros | Functions | Variables
init.c File Reference
#include "rubysocket.h"

Go to the source code of this file.

Data Structures

struct  recvfrom_arg
 
struct  connect_arg
 
struct  accept_arg
 

Macros

#define WAIT_IN_PROGRESS   1
 

Functions

void rsock_raise_socket_error (const char *reason, int error)
 
VALUE rsock_init_sock (VALUE sock, int fd)
 
VALUE rsock_sendto_blocking (void *data)
 
VALUE rsock_send_blocking (void *data)
 
static VALUE recvfrom_blocking (void *data)
 
VALUE rsock_s_recvfrom (VALUE sock, int argc, VALUE *argv, enum sock_recv_type from)
 
VALUE rsock_s_recvfrom_nonblock (VALUE sock, int argc, VALUE *argv, enum sock_recv_type from)
 
static int rsock_socket0 (int domain, int type, int proto)
 
int rsock_socket (int domain, int type, int proto)
 
static int wait_connectable (int fd)
 
static VALUE connect_blocking (void *data)
 
int rsock_connect (int fd, const struct sockaddr *sockaddr, int len, int socks)
 
static void make_fd_nonblock (int fd)
 
static int cloexec_accept (int socket, struct sockaddr *address, socklen_t *address_len)
 
VALUE rsock_s_accept_nonblock (VALUE klass, rb_io_t *fptr, struct sockaddr *sockaddr, socklen_t *len)
 
static VALUE accept_blocking (void *data)
 
VALUE rsock_s_accept (VALUE klass, int fd, struct sockaddr *sockaddr, socklen_t *len)
 
int rsock_getfamily (int sockfd)
 
void rsock_init_socket_init ()
 

Variables

VALUE rb_cBasicSocket
 
VALUE rb_cIPSocket
 
VALUE rb_cTCPSocket
 
VALUE rb_cTCPServer
 
VALUE rb_cUDPSocket
 
VALUE rb_cSocket
 
VALUE rb_cAddrinfo
 
VALUE rb_eSocket
 
int rsock_do_not_reverse_lookup = 1
 

Macro Definition Documentation

◆ WAIT_IN_PROGRESS

#define WAIT_IN_PROGRESS   1

Definition at line 363 of file init.c.

Referenced by rsock_connect().

Function Documentation

◆ accept_blocking()

static VALUE accept_blocking ( void *  data)
static

Definition at line 567 of file init.c.

References cloexec_accept(), accept_arg::fd, accept_arg::len, and accept_arg::sockaddr.

Referenced by rsock_s_accept().

◆ cloexec_accept()

static int cloexec_accept ( int  socket,
struct sockaddr *  address,
socklen_t address_len 
)
static

Definition at line 497 of file init.c.

References errno, and rb_maygvl_fd_fix_cloexec().

Referenced by accept_blocking(), and rsock_s_accept_nonblock().

◆ connect_blocking()

static VALUE connect_blocking ( void *  data)
static

Definition at line 373 of file init.c.

References connect_arg::fd, connect_arg::len, and connect_arg::sockaddr.

Referenced by rsock_connect().

◆ make_fd_nonblock()

static void make_fd_nonblock ( int  fd)
static

Definition at line 479 of file init.c.

References F_SETFL, fcntl(), O_NONBLOCK, and rb_sys_fail().

Referenced by rsock_s_accept_nonblock().

◆ recvfrom_blocking()

static VALUE recvfrom_blocking ( void *  data)
static

◆ rsock_connect()

int rsock_connect ( int  fd,
const struct sockaddr *  sockaddr,
int  len,
int  socks 
)

◆ rsock_getfamily()

int rsock_getfamily ( int  sockfd)

Definition at line 608 of file init.c.

References union_sockaddr::addr, and AF_UNSPEC.

Referenced by bsock_getsockopt(), and bsock_setsockopt().

◆ rsock_init_sock()

VALUE rsock_init_sock ( VALUE  sock,
int  fd 
)

◆ rsock_init_socket_init()

void rsock_init_socket_init ( void  )

◆ rsock_raise_socket_error()

void rsock_raise_socket_error ( const char *  reason,
int  error 
)

◆ rsock_s_accept()

VALUE rsock_s_accept ( VALUE  klass,
int  fd,
struct sockaddr *  sockaddr,
socklen_t len 
)

◆ rsock_s_accept_nonblock()

VALUE rsock_s_accept_nonblock ( VALUE  klass,
rb_io_t fptr,
struct sockaddr *  sockaddr,
socklen_t len 
)

◆ rsock_s_recvfrom()

VALUE rsock_s_recvfrom ( VALUE  sock,
int  argc,
VALUE argv,
enum sock_recv_type  from 
)

◆ rsock_s_recvfrom_nonblock()

VALUE rsock_s_recvfrom_nonblock ( VALUE  sock,
int  argc,
VALUE argv,
enum sock_recv_type  from 
)

◆ rsock_send_blocking()

VALUE rsock_send_blocking ( void *  data)

Definition at line 85 of file init.c.

References rsock_send_arg::fd, rsock_send_arg::flags, rsock_send_arg::mesg, RSTRING_LEN, and RSTRING_PTR.

Referenced by rsock_bsock_send().

◆ rsock_sendto_blocking()

VALUE rsock_sendto_blocking ( void *  data)

◆ rsock_socket()

int rsock_socket ( int  domain,
int  type,
int  proto 
)

◆ rsock_socket0()

static int rsock_socket0 ( int  domain,
int  type,
int  proto 
)
static

Definition at line 256 of file init.c.

References errno, proto, rb_fd_fix_cloexec(), and type.

Referenced by rsock_socket().

◆ wait_connectable()

static int wait_connectable ( int  fd)
static

Definition at line 305 of file init.c.

References errno, recvfrom_arg::fd, NULL, rb_wait_for_single_fd(), RB_WAITFD_IN, and RB_WAITFD_OUT.

Referenced by rsock_connect().

Variable Documentation

◆ rb_cAddrinfo

VALUE rb_cAddrinfo

Definition at line 23 of file init.c.

Referenced by rsock_addrinfo_new(), and rsock_init_addrinfo().

◆ rb_cBasicSocket

VALUE rb_cBasicSocket

◆ rb_cIPSocket

VALUE rb_cIPSocket

Definition at line 14 of file init.c.

Referenced by rsock_init_ipsocket(), rsock_init_tcpsocket(), and rsock_init_udpsocket().

◆ rb_cSocket

VALUE rb_cSocket

◆ rb_cTCPServer

VALUE rb_cTCPServer

Definition at line 16 of file init.c.

Referenced by rsock_init_tcpserver().

◆ rb_cTCPSocket

VALUE rb_cTCPSocket

◆ rb_cUDPSocket

VALUE rb_cUDPSocket

Definition at line 17 of file init.c.

Referenced by rsock_init_udpsocket().

◆ rb_eSocket

VALUE rb_eSocket

◆ rsock_do_not_reverse_lookup

int rsock_do_not_reverse_lookup = 1