# HG changeset patch # User Bruno Haible # Date 1299577859 -3600 # Node ID 70c46ee1fb5be6b7ee10cf53d5fb1d02c4120cbb # Parent 6e0c19bf3f956c694c19ec3a679fba8bb39958a8 passfd module, part 1, tweaks. * m4/afunix.m4 (gl_SOCKET_AFUNIX): Update AC_REQUIRE invocation. Improve indentation. Improve AC_MSG_CHECKING messages. * m4/sockpfaf.m4 (gl_SOCKET_FAMILY_UNIX): New macro, extracted from gl_SOCKET_FAMILIES. diff --git a/ChangeLog b/ChangeLog --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2011-03-08 Bruno Haible + + passfd module, part 1, tweaks. + * m4/afunix.m4 (gl_SOCKET_AFUNIX): Update AC_REQUIRE invocation. + Improve indentation. Improve AC_MSG_CHECKING messages. + * m4/sockpfaf.m4 (gl_SOCKET_FAMILY_UNIX): New macro, extracted from + gl_SOCKET_FAMILIES. + 2011-03-07 Bastien Roucariès passfd module, part 1. diff --git a/m4/afunix.m4 b/m4/afunix.m4 --- a/m4/afunix.m4 +++ b/m4/afunix.m4 @@ -1,4 +1,4 @@ -# afunix.m4 serial 1 +# afunix.m4 serial 2 dnl Copyright (C) 2011 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -7,89 +7,106 @@ AC_DEFUN([gl_SOCKET_AFUNIX], [ AC_REQUIRE([gl_HEADER_SYS_SOCKET]) - AC_REQUIRE([gl_SOCKET_FAMILIES]) + AC_REQUIRE([gl_SOCKET_FAMILY_UNIX]) - AC_MSG_CHECKING([for UNIX domain sockets SCM_RIGHT]) + AC_MSG_CHECKING([for UNIX domain sockets SCM_RIGHTS]) AC_CACHE_VAL([gl_cv_socket_unix_scm_rights], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_SYS_UN_H -#include -#endif -#ifdef HAVE_WINSOCK2_H -#include -#endif -]], -[[struct cmsghdr cmh; - cmh.cmsg_level = SOL_SOCKET; - cmh.cmsg_type = SCM_RIGHTS; - if (&cmh) return 0;]])], - gl_cv_socket_unix_scm_rights=yes, gl_cv_socket_unix_scm_rights=no)]) + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #ifdef HAVE_SYS_SOCKET_H + #include + #endif + #ifdef HAVE_SYS_UN_H + #include + #endif + #ifdef HAVE_WINSOCK2_H + #include + #endif + ]], + [[struct cmsghdr cmh; + cmh.cmsg_level = SOL_SOCKET; + cmh.cmsg_type = SCM_RIGHTS; + if (&cmh) return 0; + ]])], + [gl_cv_socket_unix_scm_rights=yes], + [gl_cv_socket_unix_scm_rights=no]) + ]) AC_MSG_RESULT([$gl_cv_socket_unix_scm_rights]) if test $gl_cv_socket_unix_scm_rights = yes; then - AC_DEFINE([HAVE_UNIXSOCKET_SCM_RIGHTS], [1], [Define to 1 if defines SCM_RIGHTS.]) - fi + AC_DEFINE([HAVE_UNIXSOCKET_SCM_RIGHTS], [1], + [Define to 1 if defines SCM_RIGHTS.]) + fi - AC_MSG_CHECKING([for UNIX domain sockets SCM_RIGHT behave in BSD4.4 way]) + AC_MSG_CHECKING([for UNIX domain sockets SCM_RIGHTS that behave in BSD4.4 way]) AC_CACHE_VAL([gl_cv_socket_unix_scm_rights_bsd44_way], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_SYS_UN_H -#include -#endif -#ifdef HAVE_WINSOCK2_H -#include -#endif -]], -[[struct msghdr msg = {0}; - struct cmsghdr *cmsg; - int myfds[1] = {0}; - char buf[CMSG_SPACE(sizeof(myfds))]; - int *fdptr; + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #ifdef HAVE_SYS_SOCKET_H + #include + #endif + #ifdef HAVE_SYS_UN_H + #include + #endif + #ifdef HAVE_WINSOCK2_H + #include + #endif + ]], + [[struct msghdr msg = {0}; + struct cmsghdr *cmsg; + int myfds[1] = {0}; + char buf[CMSG_SPACE (sizeof (myfds))]; + int *fdptr; - msg.msg_control = buf; - msg.msg_controllen = sizeof buf; - cmsg = CMSG_FIRSTHDR(&msg); - cmsg->cmsg_level = SOL_SOCKET; - cmsg->cmsg_type = SCM_RIGHTS; - cmsg->cmsg_len = CMSG_LEN(sizeof(int)); - /* fake Initialize the payload: */ - (void) CMSG_DATA(cmsg); - /* Sum of the length of all control messages in the buffer: */ - msg.msg_controllen = cmsg->cmsg_len; - return 0; -]])], - gl_cv_socket_unix_scm_rights_bsd44_way=yes, gl_cv_socket_unix_scm_rights_bsd44_way=no)]) + msg.msg_control = buf; + msg.msg_controllen = sizeof buf; + cmsg = CMSG_FIRSTHDR (&msg); + cmsg->cmsg_level = SOL_SOCKET; + cmsg->cmsg_type = SCM_RIGHTS; + cmsg->cmsg_len = CMSG_LEN (sizeof (int)); + /* fake Initialize the payload: */ + (void) CMSG_DATA (cmsg); + /* Sum of the length of all control messages in the buffer: */ + msg.msg_controllen = cmsg->cmsg_len; + return 0; + ]])], + [gl_cv_socket_unix_scm_rights_bsd44_way=yes], + [gl_cv_socket_unix_scm_rights_bsd44_way=no]) + ]) AC_MSG_RESULT([$gl_cv_socket_unix_scm_rights_bsd44_way]) if test $gl_cv_socket_unix_scm_rights_bsd44_way = yes; then - AC_DEFINE([HAVE_UNIXSOCKET_SCM_RIGHTS_BSD44_WAY], [1], [Define to 1 if fd could be send/received in the BSD4.4 way.]) + AC_DEFINE([HAVE_UNIXSOCKET_SCM_RIGHTS_BSD44_WAY], [1], + [Define to 1 if fd can be sent/received in the BSD4.4 way.]) fi - AC_MSG_CHECKING([for UNIX domain sockets SCM_RIGHT behave in BSD4.3 way]) + AC_MSG_CHECKING([for UNIX domain sockets SCM_RIGHTS that behave in BSD4.3 way]) AC_CACHE_VAL([gl_cv_socket_unix_scm_rights_bsd43_way], - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include -#ifdef HAVE_SYS_SOCKET_H -#include -#endif -#ifdef HAVE_SYS_UN_H -#include -#endif -#ifdef HAVE_WINSOCK2_H -#include -#endif -]], -[[struct msghdr msg; - int fd = 0; - msg.msg_accrights = &fd; - msg.msg_accrightslen = sizeof(fd); - if (&msg) return 0;]])], - gl_cv_socket_unix_scm_rights_bsd43_way=yes, gl_cv_socket_unix_scm_rights_bsd43_way=no)]) + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include + #ifdef HAVE_SYS_SOCKET_H + #include + #endif + #ifdef HAVE_SYS_UN_H + #include + #endif + #ifdef HAVE_WINSOCK2_H + #include + #endif + ]], + [[struct msghdr msg; + int fd = 0; + msg.msg_accrights = &fd; + msg.msg_accrightslen = sizeof (fd); + if (&msg) return 0; + ]])], + [gl_cv_socket_unix_scm_rights_bsd43_way=yes], + [gl_cv_socket_unix_scm_rights_bsd43_way=no]) + ]) AC_MSG_RESULT([$gl_cv_socket_unix_scm_rights_bsd43_way]) if test $gl_cv_socket_unix_scm_rights_bsd43_way = yes; then - AC_DEFINE([HAVE_UNIXSOCKET_SCM_RIGHTS_BSD43_WAY], [1], [Define to 1 if fd could be send/received in the BSD4.3 way.]) + AC_DEFINE([HAVE_UNIXSOCKET_SCM_RIGHTS_BSD43_WAY], [1], + [Define to 1 if fd can be sent/received in the BSD4.3 way.]) fi ]) diff --git a/m4/sockpfaf.m4 b/m4/sockpfaf.m4 --- a/m4/sockpfaf.m4 +++ b/m4/sockpfaf.m4 @@ -58,8 +58,13 @@ if test $gl_cv_socket_ipv6 = yes; then AC_DEFINE([HAVE_IPV6], [1], [Define to 1 if defines AF_INET6.]) fi +]) +AC_DEFUN([gl_SOCKET_FAMILY_UNIX], +[ + AC_REQUIRE([gl_HEADER_SYS_SOCKET]) AC_CHECK_HEADERS_ONCE([sys/un.h]) + AC_MSG_CHECKING([for UNIX domain sockets]) AC_CACHE_VAL([gl_cv_socket_unix], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include