diff options
author | Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr> | 2018-04-12 20:49:49 +0200 |
---|---|---|
committer | Albert ARIBAUD (3ADEV) <albert.aribaud@3adev.fr> | 2018-04-18 21:28:45 +0200 |
commit | 75121cb24885d729a07053dd921573d3a3b0f0ab (patch) | |
tree | 5720e3ba02b6ff3ab92bf1dbc11d4f613a405189 | |
parent | ab05906d242ac5b582537a11895727c820795575 (diff) | |
download | glibc-75121cb24885d729a07053dd921573d3a3b0f0ab.tar.gz |
Y2038: add function __clntudp_bufcreate64
-rw-r--r-- | sunrpc/clnt_udp.c | 18 | ||||
-rw-r--r-- | sunrpc/rpc/clnt.h | 12 |
2 files changed, 30 insertions, 0 deletions
diff --git a/sunrpc/clnt_udp.c b/sunrpc/clnt_udp.c index 27a324465a..0892ae38e0 100644 --- a/sunrpc/clnt_udp.c +++ b/sunrpc/clnt_udp.c @@ -663,3 +663,21 @@ __clntudp_create64 (struct sockaddr_in *raddr, u_long program, u_long version, return clntudp_create (raddr, program, version, wait32, sockp); } + +CLIENT * +__clntudp_bufcreate64 (struct sockaddr_in *raddr, u_long program, u_long version, + struct __timeval64 wait, int *sockp, u_int sendsz, + u_int recvsz) +{ + struct timeval wait32; + + if (wait.tv_sec > INT_MAX) + { + return NULL; + } + + wait32.tv_sec = wait.tv_sec; + wait32.tv_usec = wait.tv_usec; + + return clntudp_bufcreate (raddr, program, version, wait32, sockp, sendsz, recvsz); +} diff --git a/sunrpc/rpc/clnt.h b/sunrpc/rpc/clnt.h index b24b5ccafe..a6dff89dec 100644 --- a/sunrpc/rpc/clnt.h +++ b/sunrpc/rpc/clnt.h @@ -344,6 +344,18 @@ extern CLIENT * __REDIRECT (clntudp_create,(struct sockaddr_in *__raddr, extern CLIENT *clntudp_create (struct sockaddr_in *__raddr, u_long __program, u_long __version, struct timeval __wait_resend, int *__sockp) __THROW; +#ifdef __USE_TIME_BITS64 +# if defined(__REDIRECT) +extern CLIENT * __REDIRECT (clntudp_bufcreate,(struct sockaddr_in *__raddr, + u_long __program, u_long __version, + struct __timeval64 __wait_resend, + int *__sockp, u_int __sendsz, + u_int __recvsz), + __clntudp_bufcreate64) __THROW; +# else +# define clntudp_bufcreate __clntudp_bufcreate64 +# endif +#endif extern CLIENT *clntudp_bufcreate (struct sockaddr_in *__raddr, u_long __program, u_long __version, struct timeval __wait_resend, int *__sockp, |