Here's the result of testing passfd: Linux OK BSD4.4 way, MSG_CMSG_CLOEXEC FreeBSD OK BSD4.4 way OpenBSD OK BSD4.4 way NetBSD FAIL BSD4.4 way AIX OK BSD4.4 way HP-UX OK BSD4.3 way IRIX OK BSD4.3 way OSF/1 OK BSD4.4 way Solaris OK BSD4.3 way Cygwin FAIL BSD4.4 way
It is a bit surprising that Solaris 10 says that it doesn't support the BSD4.4 way. That is because checking for UNIX domain sockets SCM_RIGHTS that behave in BSD4.4 way... no because CMSG_SPACE etc. are not declared by <sys/socket.h> by default. I'm not sure whether gnulib should define _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, or _POSIX_C_SOURCE. But's let's leave it as is for now, since the BSD4.3 way works. On NetBSD 5.0, the test reports sendfd: Invalid argument and then hangs. On Cygwin, the test fails: recvfd: Permission denied FAIL: test-passfd.exe On mingw, I haven't even tried the module. It first requires - a 'socketpair' module for the test, - to rewrite the test to use the 'execute' module instead of fork(). Bruno -- In memoriam Odette Sansom <http://en.wikipedia.org/wiki/Odette_Hallowes>