diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2008-11-17 16:08:03 -0500 |
---|---|---|
committer | Steve Dickson <steved@redhat.com> | 2008-11-17 16:08:03 -0500 |
commit | 162cbdd19830abaf6a3fd64a22839023ce99185d (patch) | |
tree | c238f0a45a871c7a034193abcb40079d4246c49e /support/include/nfsrpc.h | |
parent | 971b780d47558e4688316b6b35bb15989b1541d0 (diff) | |
download | nfs-utils-162cbdd19830abaf6a3fd64a22839023ce99185d.tar.gz nfs-utils-162cbdd19830abaf6a3fd64a22839023ce99185d.tar.xz nfs-utils-162cbdd19830abaf6a3fd64a22839023ce99185d.zip |
Add AF_INET6-capable API to acquire an RPC CLIENT *
Provide a simple interface that any component of nfs-utils can use to acquire
an RPC CLIENT *. This is an AF_INET6-enabled API, and can also handle
PF_LOCAL sockets if libtirpc is present on the system.
When libtirpc is not available, legacy RPC services will be used instead,
and an attempt to connect to an AF_INET6 address will fail.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Steve Dickson <steved@redhat.com>
Diffstat (limited to 'support/include/nfsrpc.h')
-rw-r--r-- | support/include/nfsrpc.h | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/support/include/nfsrpc.h b/support/include/nfsrpc.h new file mode 100644 index 0000000..e129a72 --- /dev/null +++ b/support/include/nfsrpc.h @@ -0,0 +1,70 @@ +/* + * nfsrpc.h -- RPC client APIs provided by support/nfs + * + * Copyright (C) 2008 Oracle Corporation. All rights reserved. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * General Public License for more details. + * + * You should have received a copy of the GNU General Public + * License along with this program; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 021110-1307, USA. + * + */ + +#ifndef __NFS_UTILS_NFSRPC_H +#define __NFS_UTILS_NFSRPC_H + +#include <rpc/types.h> + +/* + * Conventional RPC program numbers + */ +#ifndef RPCBPROG +#define RPCBPROG ((rpcprog_t)100000) +#endif +#ifndef PMAPPROG +#define PMAPPROG ((rpcprog_t)100000) +#endif + +#ifndef NFSPROG +#define NFSPROG ((rpcprog_t)100003) +#endif +#ifndef MOUNTPROG +#define MOUNTPROG ((rpcprog_t)100005) +#endif +#ifndef NLMPROG +#define NLMPROG ((rpcprog_t)100021) +#endif +#ifndef NSMPROG +#define NSMPROG ((rpcprog_t)100024) +#endif + +/* + * Look up an RPC program name in /etc/rpc + */ +extern rpcprog_t nfs_getrpcbyname(const rpcprog_t, const char *table[]); + +/* + * Look up a port number in /etc/services for an RPC program + */ +extern unsigned short nfs_getportbynumber(const rpcprog_t program, + const unsigned short transport); + +/* + * Acquire an RPC CLIENT * + */ +extern CLIENT *nfs_get_rpcclient(const struct sockaddr *, + const socklen_t, const unsigned short, + const rpcprog_t, const rpcvers_t, + struct timeval *); + +#endif /* __NFS_UTILS_NFSRPC_H */ |