diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2009-03-05 06:13:33 -0500 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2009-03-05 06:13:33 -0500 |
commit | 2f3c0dc6908f534341f4dd24c44dcfbea7c7b253 (patch) | |
tree | 9c95686e73c479b60de7f40561cbfdbf75178107 /support/nfs/rpc_socket.c | |
parent | 71cbf46e564621d4cd2af61c384a79b2c0174a36 (diff) | |
download | nfs-utils-2f3c0dc6908f534341f4dd24c44dcfbea7c7b253.tar.gz nfs-utils-2f3c0dc6908f534341f4dd24c44dcfbea7c7b253.tar.xz nfs-utils-2f3c0dc6908f534341f4dd24c44dcfbea7c7b253.zip |
nfs-utils: Replace getservbyname(3)
The getservbyname(3) function is not re-entrant, and anyway,
the man page says it is obsolete. Replace it with a call
to getaddrinfo(3).
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'support/nfs/rpc_socket.c')
-rw-r--r-- | support/nfs/rpc_socket.c | 46 |
1 files changed, 0 insertions, 46 deletions
diff --git a/support/nfs/rpc_socket.c b/support/nfs/rpc_socket.c index 82ba818..b7420d1 100644 --- a/support/nfs/rpc_socket.c +++ b/support/nfs/rpc_socket.c @@ -480,49 +480,3 @@ rpcprog_t nfs_getrpcbyname(const rpcprog_t program, const char *table[]) return program; } - -static unsigned short nfs_tryportbyname(const char *name, - const char *protocol) -{ - struct servent *servp = NULL; - - servp = getservbyname(name, protocol); - if (servp != NULL) - return (unsigned short)ntohl((uint32_t)servp->s_port); - return 0; -} - -/** - * nfs_getportbynumber - convert an RPC program number to a port - * @program: RPC program number to look up - * @transport: IPPROTO_ value of transport protocol to use - * - * Returns a non-zero port number, in host byte order, on success; - * otherwise zero if some problem occurred. - */ -unsigned short nfs_getportbynumber(const rpcprog_t program, - const unsigned short transport) -{ - char *protocol = (transport == IPPROTO_TCP) ? "tcp" : "udp"; - struct rpcent *rpcp; - unsigned short port = 0; - - rpcp = getrpcbynumber((int)program); - if (rpcp == NULL) - return port; - - port = nfs_tryportbyname(rpcp->r_name, protocol); - if (port != 0) - return port; - - if (rpcp->r_aliases) { - int i; - for (i = 0; rpcp->r_aliases[i] != NULL; i++) { - port = nfs_tryportbyname(rpcp->r_aliases[i], protocol); - if (port != 0) - break; - } - } - - return port; -} |