Add Socket::ResolutionError & Socket::ResolutionError#error_code
Socket::ResolutionError#error_code returns Socket::EAI_XXX
This commit is contained in:
parent
db7f3064a8
commit
e9050270d7
@ -27,6 +27,7 @@ VALUE rb_cSocket;
|
|||||||
VALUE rb_cAddrinfo;
|
VALUE rb_cAddrinfo;
|
||||||
|
|
||||||
VALUE rb_eSocket;
|
VALUE rb_eSocket;
|
||||||
|
VALUE rb_eResolution;
|
||||||
|
|
||||||
#ifdef SOCKS
|
#ifdef SOCKS
|
||||||
VALUE rb_cSOCKSSocket;
|
VALUE rb_cSOCKSSocket;
|
||||||
@ -34,6 +35,7 @@ VALUE rb_cSOCKSSocket;
|
|||||||
|
|
||||||
int rsock_do_not_reverse_lookup = 1;
|
int rsock_do_not_reverse_lookup = 1;
|
||||||
static VALUE sym_wait_readable;
|
static VALUE sym_wait_readable;
|
||||||
|
static ID id_error_code;
|
||||||
|
|
||||||
void
|
void
|
||||||
rsock_raise_socket_error(const char *reason, int error)
|
rsock_raise_socket_error(const char *reason, int error)
|
||||||
@ -772,6 +774,12 @@ rsock_getfamily(rb_io_t *fptr)
|
|||||||
return ss.addr.sa_family;
|
return ss.addr.sa_family;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static VALUE
|
||||||
|
sock_resolv_error_code(VALUE self)
|
||||||
|
{
|
||||||
|
return rb_attr_get(self, id_error_code);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
rsock_init_socket_init(void)
|
rsock_init_socket_init(void)
|
||||||
{
|
{
|
||||||
@ -779,6 +787,8 @@ rsock_init_socket_init(void)
|
|||||||
* SocketError is the error class for socket.
|
* SocketError is the error class for socket.
|
||||||
*/
|
*/
|
||||||
rb_eSocket = rb_define_class("SocketError", rb_eStandardError);
|
rb_eSocket = rb_define_class("SocketError", rb_eStandardError);
|
||||||
|
rb_eResolution = rb_define_class_under(rb_cSocket, "ResolutionError", rb_eSocket);
|
||||||
|
rb_define_method(rb_eResolution, "error_code", sock_resolv_error_code, 0);
|
||||||
rsock_init_ipsocket();
|
rsock_init_ipsocket();
|
||||||
rsock_init_tcpsocket();
|
rsock_init_tcpsocket();
|
||||||
rsock_init_tcpserver();
|
rsock_init_tcpserver();
|
||||||
@ -792,6 +802,8 @@ rsock_init_socket_init(void)
|
|||||||
rsock_init_sockifaddr();
|
rsock_init_sockifaddr();
|
||||||
rsock_init_socket_constants();
|
rsock_init_socket_constants();
|
||||||
|
|
||||||
|
id_error_code = rb_intern_const("error_code");
|
||||||
|
|
||||||
#undef rb_intern
|
#undef rb_intern
|
||||||
sym_wait_readable = ID2SYM(rb_intern("wait_readable"));
|
sym_wait_readable = ID2SYM(rb_intern("wait_readable"));
|
||||||
|
|
||||||
|
@ -285,6 +285,7 @@ extern VALUE rb_cAddrinfo;
|
|||||||
extern VALUE rb_cSockOpt;
|
extern VALUE rb_cSockOpt;
|
||||||
|
|
||||||
extern VALUE rb_eSocket;
|
extern VALUE rb_eSocket;
|
||||||
|
extern VALUE rb_eResolution;
|
||||||
|
|
||||||
#ifdef SOCKS
|
#ifdef SOCKS
|
||||||
extern VALUE rb_cSOCKSSocket;
|
extern VALUE rb_cSOCKSSocket;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user