summaryrefslogtreecommitdiff
path: root/ext/socket/socket.c
diff options
context:
space:
mode:
authorSamuel Williams <[email protected]>2024-10-12 10:08:34 +1300
committerGitHub <[email protected]>2024-10-12 10:08:34 +1300
commitad5641fd3424790789871300b7c0dd6c069f3614 (patch)
tree60ef4585dbf4342665e9f0e47db2944b94c5e45e /ext/socket/socket.c
parent2e6ddd968d5601689f59c029bb401d7cdabab3b7 (diff)
Support `IO#timeout` for `rsock_connect`. (#11880)
Notes
Notes: Merged-By: ioquatix <[email protected]>
Diffstat (limited to 'ext/socket/socket.c')
-rw-r--r--ext/socket/socket.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index c974aafe55..487a293c4e 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -387,16 +387,15 @@ rsock_sock_s_socketpair(int argc, VALUE *argv, VALUE klass)
* * connect function in Microsoft's Winsock functions reference
*/
static VALUE
-sock_connect(VALUE sock, VALUE addr)
+sock_connect(VALUE self, VALUE addr)
{
VALUE rai;
- rb_io_t *fptr;
SockAddrStringValueWithAddrinfo(addr, rai);
addr = rb_str_new4(addr);
- GetOpenFile(sock, fptr);
- int result = rsock_connect(sock, (struct sockaddr*)RSTRING_PTR(addr), RSTRING_SOCKLEN(addr), 0, NULL);
+ int result = rsock_connect(self, (struct sockaddr*)RSTRING_PTR(addr), RSTRING_SOCKLEN(addr), 0, RUBY_IO_TIMEOUT_DEFAULT);
+
if (result < 0) {
rsock_sys_fail_raddrinfo_or_sockaddr("connect(2)", addr, rai);
}