summaryrefslogtreecommitdiff
path: root/ext/socket/unixserver.c
diff options
context:
space:
mode:
authorSamuel Williams <samuel.williams@oriontransfer.co.nz>2021-05-09 00:13:47 +1200
committerSamuel Williams <samuel.williams@oriontransfer.co.nz>2021-06-22 22:17:53 +1200
commit3deb5d7113e1fd6e4b468e09464d524d390d811e (patch)
tree0c54b41e0d773435622b8a0e87f1a9612aeaf701 /ext/socket/unixserver.c
parentff609eee98dc5c20f68b7befac147537e640aad1 (diff)
Direct io for accept, send, sendmsg, recvfrom, and related methods.
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/4477
Diffstat (limited to 'ext/socket/unixserver.c')
-rw-r--r--ext/socket/unixserver.c23
1 files changed, 8 insertions, 15 deletions
diff --git a/ext/socket/unixserver.c b/ext/socket/unixserver.c
index b1f2a38547..890f9d3fae 100644
--- a/ext/socket/unixserver.c
+++ b/ext/socket/unixserver.c
@@ -47,16 +47,12 @@ unix_svr_init(VALUE sock, VALUE path)
*
*/
static VALUE
-unix_accept(VALUE sock)
+unix_accept(VALUE server)
{
- rb_io_t *fptr;
- struct sockaddr_un from;
- socklen_t fromlen;
+ struct sockaddr_un buffer;
+ socklen_t length = sizeof(buffer);
- GetOpenFile(sock, fptr);
- fromlen = (socklen_t)sizeof(struct sockaddr_un);
- return rsock_s_accept(rb_cUNIXSocket, fptr->fd,
- (struct sockaddr*)&from, &fromlen);
+ return rsock_s_accept(rb_cUNIXSocket, server, (struct sockaddr*)&buffer, &length);
}
/* :nodoc: */
@@ -92,15 +88,12 @@ unix_accept_nonblock(VALUE sock, VALUE ex)
*
*/
static VALUE
-unix_sysaccept(VALUE sock)
+unix_sysaccept(VALUE server)
{
- rb_io_t *fptr;
- struct sockaddr_un from;
- socklen_t fromlen;
+ struct sockaddr_un buffer;
+ socklen_t length = sizeof(buffer);
- GetOpenFile(sock, fptr);
- fromlen = (socklen_t)sizeof(struct sockaddr_un);
- return rsock_s_accept(0, fptr->fd, (struct sockaddr*)&from, &fromlen);
+ return rsock_s_accept(0, server, (struct sockaddr*)&buffer, &length);
}
#endif