summaryrefslogtreecommitdiff
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
* 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