diff options
author | Natanael Copa <ncopa@alpinelinux.org> | 2014-09-12 05:13:16 -0400 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2014-09-15 13:56:57 -0400 |
commit | 20b6f6ba12755632bb639a40e030b79b65b78549 (patch) | |
tree | 5778c842ea1dc464bdbaea986352065125a398d5 /support/nfs | |
parent | d17e43047a65f5bfced18a8fbbd52ff635d4ff02 (diff) | |
download | nfs-utils-20b6f6ba12755632bb639a40e030b79b65b78549.tar.gz nfs-utils-20b6f6ba12755632bb639a40e030b79b65b78549.tar.xz nfs-utils-20b6f6ba12755632bb639a40e030b79b65b78549.zip |
Allow usage of getrpcbynumber() when getrpcbynumber_r() is unavailable
Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'support/nfs')
-rw-r--r-- | support/nfs/svc_socket.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/support/nfs/svc_socket.c b/support/nfs/svc_socket.c index f56f310..74273b9 100644 --- a/support/nfs/svc_socket.c +++ b/support/nfs/svc_socket.c @@ -25,6 +25,8 @@ #include <sys/fcntl.h> #include <errno.h> +#include "config.h" + #ifdef _LIBC # include <libintl.h> #else @@ -37,13 +39,20 @@ int getservport(u_long number, const char *proto) { - char rpcdata[1024], servdata[1024]; - struct rpcent rpcbuf, *rpcp; + char servdata[1024]; + struct rpcent *rpcp; struct servent servbuf, *servp = NULL; - int ret; + int ret = 0; +#if HAVE_GETRPCBYNUMBER_R + char rpcdata[1024]; + struct rpcent rpcbuf; ret = getrpcbynumber_r(number, &rpcbuf, rpcdata, sizeof rpcdata, &rpcp); +#else + rpcp = getrpcbynumber(number); +#endif + if (ret == 0 && rpcp != NULL) { /* First try name. */ ret = getservbyname_r(rpcp->r_name, proto, &servbuf, servdata, |