diff options
Diffstat (limited to 'ext/socket/socket.c')
-rw-r--r-- | ext/socket/socket.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/ext/socket/socket.c b/ext/socket/socket.c index 7e33de1411..abce61307a 100644 --- a/ext/socket/socket.c +++ b/ext/socket/socket.c @@ -688,13 +688,13 @@ sock_accept(VALUE sock) { rb_io_t *fptr; VALUE sock2; - char buf[1024]; + struct sockaddr_storage buf; socklen_t len = sizeof buf; GetOpenFile(sock, fptr); - sock2 = s_accept(rb_cSocket,fptr->fd,(struct sockaddr*)buf,&len); + sock2 = s_accept(rb_cSocket,fptr->fd,(struct sockaddr*)&buf,&len); - return rb_assoc_new(sock2, io_socket_addrinfo(sock2, (struct sockaddr*)buf, len)); + return rb_assoc_new(sock2, io_socket_addrinfo(sock2, (struct sockaddr*)&buf, len)); } /* @@ -750,12 +750,12 @@ sock_accept_nonblock(VALUE sock) { rb_io_t *fptr; VALUE sock2; - char buf[1024]; + struct sockaddr_storage buf; socklen_t len = sizeof buf; GetOpenFile(sock, fptr); - sock2 = s_accept_nonblock(rb_cSocket, fptr, (struct sockaddr *)buf, &len); - return rb_assoc_new(sock2, io_socket_addrinfo(sock2, (struct sockaddr*)buf, len)); + sock2 = s_accept_nonblock(rb_cSocket, fptr, (struct sockaddr *)&buf, &len); + return rb_assoc_new(sock2, io_socket_addrinfo(sock2, (struct sockaddr*)&buf, len)); } /* @@ -802,13 +802,13 @@ sock_sysaccept(VALUE sock) { rb_io_t *fptr; VALUE sock2; - char buf[1024]; + struct sockaddr_storage buf; socklen_t len = sizeof buf; GetOpenFile(sock, fptr); - sock2 = s_accept(0,fptr->fd,(struct sockaddr*)buf,&len); + sock2 = s_accept(0,fptr->fd,(struct sockaddr*)&buf,&len); - return rb_assoc_new(sock2, io_socket_addrinfo(sock2, (struct sockaddr*)buf, len)); + return rb_assoc_new(sock2, io_socket_addrinfo(sock2, (struct sockaddr*)&buf, len)); } #ifdef HAVE_GETHOSTNAME |