Ruby
3.1.0dev(2021-09-10revisionb76ad15ed0da636161de0243c547ee1e6fc95681)
|
#include "rubysocket.h"
Go to the source code of this file.
Data Structures | |
struct | recvfrom_arg |
struct | connect_arg |
struct | accept_arg |
Macros | |
#define | do_write_retry(code) ret = code |
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) |
VALUE | rsock_s_recvfrom (VALUE socket, int argc, VALUE *argv, enum sock_recv_type from) |
VALUE | rsock_s_recvfrom_nonblock (VALUE sock, VALUE len, VALUE flg, VALUE str, VALUE ex, enum sock_recv_type from) |
int | rsock_socket (int domain, int type, int proto) |
int | rsock_connect (int fd, const struct sockaddr *sockaddr, int len, int socks, struct timeval *timeout) |
void | rsock_make_fd_nonblock (int fd) |
VALUE | rsock_s_accept_nonblock (VALUE klass, VALUE ex, rb_io_t *fptr, struct sockaddr *sockaddr, socklen_t *len) |
VALUE | rsock_s_accept (VALUE klass, VALUE io, struct sockaddr *sockaddr, socklen_t *len) |
int | rsock_getfamily (rb_io_t *fptr) |
void | rsock_init_socket_init (void) |
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 |
int rsock_getfamily | ( | rb_io_t * | fptr | ) |
Definition at line 724 of file init.c.
References union_sockaddr::addr, AF_UNSPEC, rb_io_t::fd, FMODE_INET, FMODE_INET6, FMODE_SOCK, FMODE_UNIX, and rb_io_t::mode.
Definition at line 64 of file init.c.
References rb_io_t::fd, FMODE_DUPLEX, FMODE_NOREVLOOKUP, FMODE_READWRITE, MakeOpenFile, rb_io_t::mode, rb_io_ascii8bit_binmode(), rb_io_synchronized(), rb_update_max_fd(), and rsock_do_not_reverse_lookup.
void rsock_init_socket_init | ( | void | ) |
Definition at line 756 of file init.c.
References rb_define_class(), rb_eSocket, rb_eStandardError, rsock_init_addrinfo(), rsock_init_ancdata(), rsock_init_ipsocket(), rsock_init_socket_constants(), rsock_init_sockifaddr(), rsock_init_sockopt(), rsock_init_sockssocket(), rsock_init_tcpserver(), rsock_init_tcpsocket(), rsock_init_udpsocket(), rsock_init_unixserver(), and rsock_init_unixsocket().
Referenced by Init_socket().
void rsock_make_fd_nonblock | ( | int | fd | ) |
Definition at line 583 of file init.c.
References F_SETFL, fcntl(), connect_arg::fd, O_NONBLOCK, and rb_sys_fail().
void rsock_raise_socket_error | ( | const char * | reason, |
int | error | ||
) |
Definition at line 39 of file init.c.
References EAI_SYSTEM, rb_default_internal_encoding(), rb_encoding, and rb_syserr_fail().
Referenced by rsock_inspect_sockaddr(), and rsock_ipaddr().
Definition at line 678 of file init.c.
References BLOCKING_REGION_FD, rb_io_t::fd, accept_arg::fd, len, NULL, Qnil, RB_INT2NUM, RB_IO_POINTER, rb_io_wait(), RUBY_IO_READABLE, rb_io_t::self, and accept_arg::sockaddr.
VALUE rsock_s_accept_nonblock | ( | VALUE | klass, |
VALUE | ex, | ||
rb_io_t * | fptr, | ||
struct sockaddr * | sockaddr, | ||
socklen_t * | len | ||
) |
Definition at line 636 of file init.c.
References rb_io_set_nonblock().
VALUE rsock_s_recvfrom | ( | VALUE | socket, |
int | argc, | ||
VALUE * | argv, | ||
enum sock_recv_type | from | ||
) |
Definition at line 151 of file init.c.
References argc, argv, recvfrom_arg::flags, len, NUM2INT, Qnil, rb_scan_args(), and str.
VALUE rsock_s_recvfrom_nonblock | ( | VALUE | sock, |
VALUE | len, | ||
VALUE | flg, | ||
VALUE | str, | ||
VALUE | ex, | ||
enum sock_recv_type | from | ||
) |
Definition at line 224 of file init.c.
References recvfrom_arg::alen, buf, recvfrom_arg::fd, recvfrom_arg::flags, len, NUM2INT, Qnil, and str.
VALUE rsock_send_blocking | ( | void * | data | ) |
Definition at line 93 of file init.c.
References do_write_retry, rsock_send_arg::fd, rsock_send_arg::flags, rsock_send_arg::mesg, ret, RSTRING_LEN, and RSTRING_PTR.
Referenced by rsock_bsock_send().
VALUE rsock_sendto_blocking | ( | void * | data | ) |
Definition at line 82 of file init.c.
References do_write_retry, rsock_send_arg::fd, rsock_send_arg::flags, rsock_send_arg::mesg, ret, RSTRING_LEN, RSTRING_PTR, rsock_send_arg::to, and rsock_send_arg::tolen.
Referenced by rsock_bsock_send().
int rsock_socket | ( | int | domain, |
int | type, | ||
int | proto | ||
) |
Definition at line 430 of file init.c.
References recvfrom_arg::fd.
VALUE rb_cBasicSocket |
Definition at line 17 of file init.c.
Referenced by Init_socket(), rsock_init_basicsocket(), rsock_init_ipsocket(), and rsock_init_unixsocket().
VALUE rb_cIPSocket |
Definition at line 18 of file init.c.
Referenced by rsock_init_ipsocket(), rsock_init_tcpsocket(), and rsock_init_udpsocket().
VALUE rb_cSocket |
Definition at line 26 of file init.c.
Referenced by Init_socket(), rsock_init_ancdata(), rsock_init_sockifaddr(), and rsock_init_sockopt().
VALUE rb_cTCPServer |
Definition at line 20 of file init.c.
Referenced by rsock_init_tcpserver().
VALUE rb_cTCPSocket |
Definition at line 19 of file init.c.
Referenced by rsock_init_sockssocket(), rsock_init_tcpserver(), and rsock_init_tcpsocket().
VALUE rb_cUDPSocket |
Definition at line 21 of file init.c.
Referenced by rsock_init_udpsocket().
VALUE rb_eSocket |
Definition at line 29 of file init.c.
Referenced by rsock_init_socket_init().
int rsock_do_not_reverse_lookup = 1 |
Definition at line 35 of file init.c.
Referenced by rsock_init_sock().