From: Bruno Haible Date: Fri, 10 Oct 2008 02:17:02 +0000 (+0200) Subject: Make the ioctl() signature POSIX compliant. X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e63878c72a554e74801cf0855729d8be649a9f5;p=pspp Make the ioctl() signature POSIX compliant. --- diff --git a/ChangeLog b/ChangeLog index d7dc92bd38..1a778b0eb7 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2008-10-09 Bruno Haible + + * lib/sys_socket.in.h (ioctl): Make signature POSIX compliant. + * lib/winsock.c: Include . + (rpl_ioctl): Change to second argument 'int' and then varargs. + 2008-10-09 Bruno Haible * m4/close.m4 (gl_FUNC_CLOSE): Arrange to replace the close() function when diff --git a/lib/sys_socket.in.h b/lib/sys_socket.in.h index 74cb37a98f..ddc4264eae 100644 --- a/lib/sys_socket.in.h +++ b/lib/sys_socket.in.h @@ -282,7 +282,7 @@ extern int rpl_listen (int, int); # if @HAVE_WINSOCK2_H@ # undef ioctl # define ioctl rpl_ioctl -extern int rpl_ioctl (int, unsigned long, char *); +extern int rpl_ioctl (int, int, ...); # endif # if @GNULIB_RECV@ diff --git a/lib/winsock.c b/lib/winsock.c index feee00d54d..53b9336b95 100644 --- a/lib/winsock.c +++ b/lib/winsock.c @@ -18,6 +18,7 @@ /* Written by Paolo Bonzini */ #include +#include #include #include #include @@ -224,10 +225,19 @@ rpl_listen (int fd, int backlog) #endif int -rpl_ioctl (int fd, unsigned long req, char *buf) +rpl_ioctl (int fd, int req, ...) { - SOCKET sock = FD_TO_SOCKET (fd); - int r = ioctlsocket (sock, req, (void *) buf); + void *buf; + va_list args; + SOCKET sock; + int r; + + va_start (args, req); + buf = va_arg (args, void *); + va_end (args); + + sock = FD_TO_SOCKET (fd); + r = ioctlsocket (sock, req, buf); if (r < 0) set_winsock_errno ();