diff options
author | Misaki Shioi <shioi.mm@gmail.com> | 2023-11-23 16:49:41 +0900 |
---|---|---|
committer | Yusuke Endoh <mame@ruby-lang.org> | 2023-11-30 13:27:19 +0900 |
commit | 52f6de41961d511e82826d6266441d91a92dcd59 (patch) | |
tree | 07b25e7fbfa7a013615b22e6704d137619a0c1af /ext/socket | |
parent | e9050270d7d8b1bc6be2c1352772b906031adc6e (diff) |
Replace SocketError with Socket::ResolutionError in rsock_raise_socket_error
rsock_raise_socket_error is called only when getaddrinfo and getaddrname fail
Diffstat (limited to 'ext/socket')
-rw-r--r-- | ext/socket/init.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/ext/socket/init.c b/ext/socket/init.c index 5ca0cdbb1d..10459710c2 100644 --- a/ext/socket/init.c +++ b/ext/socket/init.c @@ -50,10 +50,14 @@ rsock_raise_socket_error(const char *reason, int error) VALUE msg = rb_sprintf("%s: ", reason); if (!enc) enc = rb_default_internal_encoding(); rb_str_concat(msg, rb_w32_conv_from_wchar(gai_strerrorW(error), enc)); - rb_exc_raise(rb_exc_new_str(rb_eSocket, msg)); #else - rb_raise(rb_eSocket, "%s: %s", reason, gai_strerror(error)); + VALUE msg = rb_sprintf("%s: %s", reason, gai_strerror(error)); #endif + + StringValue(msg); + VALUE self = rb_class_new_instance(1, &msg, rb_eResolution); + rb_ivar_set(self, id_error_code, INT2NUM(error)); + rb_exc_raise(self); } #if defined __APPLE__ |