+2008-10-09 Bruno Haible <bruno@clisp.org>
+
+ * lib/sys_socket.in.h (ioctl): Make signature POSIX compliant.
+ * lib/winsock.c: Include <stdarg.h>.
+ (rpl_ioctl): Change to second argument 'int' and then varargs.
+
2008-10-09 Bruno Haible <bruno@clisp.org>
* m4/close.m4 (gl_FUNC_CLOSE): Arrange to replace the close() function when
# 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@
/* Written by Paolo Bonzini */
#include <config.h>
+#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#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 ();