about summary refs log tree commit diff
path: root/include
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2008-07-25 17:06:50 +0000
committerUlrich Drepper <drepper@redhat.com>2008-07-25 17:06:50 +0000
commit8ccf22f93431a2f8c77de708cd3b15325c8fe0f4 (patch)
treeea971b1800c807ebd69b29a80b01f06a9c71b34f /include
parent3ff2c948beaad303e376e1ad778d1cd8693a3099 (diff)
downloadglibc-8ccf22f93431a2f8c77de708cd3b15325c8fe0f4.tar.gz
glibc-8ccf22f93431a2f8c77de708cd3b15325c8fe0f4.tar.xz
glibc-8ccf22f93431a2f8c77de708cd3b15325c8fe0f4.zip
* include/rpc/clnt.h: Declare __libc_clntudp_bufcreate and
	__libc_clntudp_bufcreate_internal.
	* include/sys/socket.h: Declare __have_sock_cloexec.
	* socket/Makefile (aux): Add have_sock_cloexec.
	* socket/have_sock_cloexec.c: New file.
	* sunrpc/clnt_udp.h (clntudp_bufcreate): Now a wrapper around
	__libc_clntudp_bufcreate.
	(__libc_clntudp_bufcreate): Former implementation of clntudp_bufcreate
	which takes an additional parameter.  Create socket with non-blocking
	mode and close-on-exec flag set, if wanted.
	* sunrpc/Versions: Export __libc_clntudp_bufcreate@GLIBC_PRIVATE.
	* nis/ypclnt.c (yp_bind_client_create): Use __libc_clntpudp_bufcreate
	instead of clntudp_create.  The socket has already the close-on-exec
	flag set if SOCK_CLOEXEC is defined.
Diffstat (limited to 'include')
-rw-r--r--include/rpc/clnt.h12
-rw-r--r--include/sys/socket.h8
2 files changed, 20 insertions, 0 deletions
diff --git a/include/rpc/clnt.h b/include/rpc/clnt.h
index 1e72e22bcb..75d88a65ca 100644
--- a/include/rpc/clnt.h
+++ b/include/rpc/clnt.h
@@ -21,6 +21,18 @@ extern CLIENT *clntudp_bufcreate_internal (struct sockaddr_in *__raddr,
 					   struct timeval __wait_resend,
 					   int *__sockp, u_int __sendsz,
 					   u_int __recvsz) attribute_hidden;
+extern CLIENT *__libc_clntudp_bufcreate (struct sockaddr_in *__raddr,
+					 u_long __program, u_long __version,
+					 struct timeval __wait_resend,
+					 int *__sockp, u_int __sendsz,
+					 u_int __recvsz, int __flags);
+extern CLIENT *__libc_clntudp_bufcreate_internal (struct sockaddr_in *__raddr,
+						  u_long __program,
+						  u_long __version,
+						  struct timeval __wait_resend,
+						  int *__sockp, u_int __sendsz,
+						  u_int __recvsz, int __flags)
+  attribute_hidden;
 extern CLIENT *clntunix_create_internal (struct sockaddr_un *__raddr,
 					 u_long __program, u_long __version,
 					 int *__sockp, u_int __sendsz,
diff --git a/include/sys/socket.h b/include/sys/socket.h
index 0a226726aa..df892783a0 100644
--- a/include/sys/socket.h
+++ b/include/sys/socket.h
@@ -153,4 +153,12 @@ extern int __libc_sa_len_internal (sa_family_t __af) attribute_hidden;
 # define __connect(fd, addr, len) INTUSE(__connect) (fd, addr, len)
 #endif
 
+#ifdef SOCK_CLOEXEC
+extern int __have_sock_cloexec;
+/* At lot of other functionality became available at the same time as
+   SOCK_CLOEXEC.  Avoid defining separate variables for all of them
+   unless it is really necessary.  */
+# define __have_paccept __have_sock_cloexec
+#endif
+
 #endif