This seem to work on all platforms I have tested (including mingw32), so I have installed it. This version doesn't duplicate the socket module as much anymore.
Arguable, it would be more correct to replace #if HAVE_SYS_SOCKET_H # include <sys/socket.h> #endif #if HAVE_WS2TCPIP_H # include <ws2tcpip.h> #endif])]) with #include "gl/socket_.h" but I'm not sure how to do that. The problem is that the 'gl/' part will have to be replaced by the gnulib-tool --base-dir value. Anyway, can be fixed later on. 2006-01-19 Simon Josefsson <[EMAIL PROTECTED]> * socklen.m4: Look in ws2tcpip.h too, for mingw32. Index: socklen.m4 =================================================================== RCS file: /sources/gnulib/gnulib/m4/socklen.m4,v retrieving revision 1.3 retrieving revision 1.4 diff -u -p -r1.3 -r1.4 --- socklen.m4 2 Dec 2005 18:23:00 -0000 1.3 +++ socklen.m4 19 Jan 2006 14:13:52 -0000 1.4 @@ -1,17 +1,22 @@ -# socklen.m4 serial 2 -dnl Copyright (C) 2005 Free Software Foundation, Inc. +# socklen.m4 serial 3 +dnl Copyright (C) 2005, 2006 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. -dnl From Albert Chin. +dnl From Albert Chin, Windows fixes from Simon Josefsson. dnl Check for socklen_t: historically on BSD it is an int, and in dnl POSIX 1g it is a type of its own, but some platforms use different dnl types for the argument to getsockopt, getpeername, etc. So we dnl have to test to find something that will work. + +dnl On mingw32, socklen_t is in ws2tcpip.h ('int'), so we try to find +dnl it there first. That file is included by gnulib's socket_.h, which +dnl all users of this module should include. AC_DEFUN([gl_TYPE_SOCKLEN_T], - [AC_CHECK_TYPE([socklen_t], , + [AC_CHECK_HEADERS_ONCE([sys/socket.h ws2tcpip.h]) + AC_CHECK_TYPE([socklen_t], , [AC_MSG_CHECKING([for socklen_t equivalent]) AC_CACHE_VAL([gl_cv_gl_cv_socklen_t_equiv], [# Systems have either "struct sockaddr *" or @@ -21,7 +26,7 @@ AC_DEFUN([gl_TYPE_SOCKLEN_T], for t in int size_t "unsigned int" "long int" "unsigned long int"; do AC_TRY_COMPILE( [#include <sys/types.h> - #include <sys/socket.h> + #include <sys/socket.h> int getpeername (int, $arg2 *, $t *);], [$t len; @@ -39,4 +44,9 @@ AC_DEFUN([gl_TYPE_SOCKLEN_T], AC_DEFINE_UNQUOTED([socklen_t], [$gl_cv_socklen_t_equiv], [type to use in place of socklen_t if not defined])], [#include <sys/types.h> - #include <sys/socket.h>])]) + #if HAVE_SYS_SOCKET_H + # include <sys/socket.h> + #endif + #if HAVE_WS2TCPIP_H + # include <ws2tcpip.h> + #endif])]) _______________________________________________ bug-gnulib mailing list bug-gnulib@gnu.org http://lists.gnu.org/mailman/listinfo/bug-gnulib