changeset 13588:a17068cb741d

sys_socket, netdb: Ensure socklen_t gets defined.
author Bruno Haible <bruno@clisp.org>
date Sat, 28 Aug 2010 10:16:34 +0200
parents abf2677e9b95
children eb2d6ffe06bc
files ChangeLog m4/socklen.m4 modules/getaddrinfo modules/getsockopt modules/netdb modules/setsockopt modules/sys_socket tests/test-netdb.c tests/test-sys_socket.c
diffstat 9 files changed, 27 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2010-08-28  Bruno Haible  <bruno@clisp.org>
+
+	sys_socket, netdb: Ensure socklen_t gets defined.
+	* modules/sys_socket (Depends-on): Add socklen.
+	* modules/netdb (Depends-on): Likewise.
+	* modules/getaddrinfo (Depends-on): Remove socklen.
+	* modules/getsockopt (Depends-on): Likewise.
+	* modules/setsockopt (Depends-on): Likewise.
+	* tests/test-sys_socket.c: Check that socklen_t is defined.
+	* tests/test-netdb.c: Likewise.
+	* m4/socklen.m4: Update comments.
+	Reported by Ralf Wildenhues <Ralf.Wildenhues@gmx.de>.
+
 2010-08-27  Eric Blake  <eblake@redhat.com>
 
 	login_tty: add missing dependency
--- a/m4/socklen.m4
+++ b/m4/socklen.m4
@@ -1,4 +1,4 @@
-# socklen.m4 serial 7
+# socklen.m4 serial 8
 dnl Copyright (C) 2005, 2006, 2007, 2009, 2010 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -8,8 +8,9 @@
 
 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 types for the argument to getsockopt, getpeername, etc.:
+dnl HP-UX 10.20, IRIX 6.5, Interix 3.5, BeOS.
+dnl So we 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 sys_socket.in.h, which
--- a/modules/getaddrinfo
+++ b/modules/getaddrinfo
@@ -11,7 +11,6 @@
 gettext-h
 inet_ntop
 snprintf
-socklen
 stdbool
 sys_socket
 netdb
--- a/modules/getsockopt
+++ b/modules/getsockopt
@@ -8,7 +8,6 @@
 Depends-on:
 sys_socket
 sys_time
-socklen
 errno
 
 configure.ac:
--- a/modules/netdb
+++ b/modules/netdb
@@ -10,6 +10,7 @@
 arg-nonnull
 warn-on-use
 sys_socket
+socklen
 
 configure.ac:
 gl_HEADER_NETDB
--- a/modules/setsockopt
+++ b/modules/setsockopt
@@ -8,7 +8,6 @@
 Depends-on:
 sys_socket
 sys_time
-socklen
 errno
 
 configure.ac:
--- a/modules/sys_socket
+++ b/modules/sys_socket
@@ -12,6 +12,7 @@
 c++defs
 errno
 include_next
+socklen
 warn-on-use
 
 configure.ac:
--- a/tests/test-netdb.c
+++ b/tests/test-netdb.c
@@ -1,5 +1,5 @@
 /* Test of <netdb.h> substitute.
-   Copyright (C) 2007-2010 Free Software Foundation, Inc.
+   Copyright (C) 2007-2008, 2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -22,6 +22,9 @@
 /* Check that the 'struct hostent' type is defined.  */
 struct hostent t1;
 
+/* Check that the 'socklen_t' type is defined.  */
+socklen_t t2;
+
 int
 main (void)
 {
--- a/tests/test-sys_socket.c
+++ b/tests/test-sys_socket.c
@@ -1,5 +1,5 @@
 /* Test of <sys/socket.h> substitute.
-   Copyright (C) 2007, 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2007, 2009-2010 Free Software Foundation, Inc.
 
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -27,6 +27,9 @@
 int a[] = { SHUT_RD, SHUT_WR, SHUT_RDWR };
 #endif
 
+/* Check that the 'socklen_t' type is defined.  */
+socklen_t t1;
+
 int
 main (void)
 {