summaryrefslogtreecommitdiff
path: root/include/linux
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@fys.uio.no>2003-01-12 21:40:55 -0800
committerLinus Torvalds <torvalds@penguin.transmeta.com>2003-01-12 21:40:55 -0800
commit756a93f720ecf1f695691e06712be128bad02be0 (patch)
tree3050d3509817be22b9a2c61c7451f742f904508e /include/linux
parent68fc0a7808166f84a382a50639f26c1dd9dcd354 (diff)
[PATCH] Clean up RPC client credcache lookups [1/6]
Clean up RPC client credcache lookups. - Remove the limitation whereby the RPC client may only look up credentials for the current task. The ability to lookup arbitrary credentials is needed in order to allow a user daemon to set the RPCSEC_GSS private information once it has finished negotiating the RPCSEC user context with the server.
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/sunrpc/auth.h12
1 files changed, 10 insertions, 2 deletions
diff --git a/include/linux/sunrpc/auth.h b/include/linux/sunrpc/auth.h
index 5e481026fc7e..13d7f1aec49c 100644
--- a/include/linux/sunrpc/auth.h
+++ b/include/linux/sunrpc/auth.h
@@ -19,6 +19,14 @@
/* size of the nodename buffer */
#define UNX_MAXNODENAME 32
+/* Work around the lack of a VFS credential */
+struct auth_cred {
+ uid_t uid;
+ gid_t gid;
+ int ngroups;
+ gid_t *groups;
+};
+
/*
* Client user credentials
*/
@@ -74,13 +82,13 @@ struct rpc_authops {
struct rpc_auth * (*create)(struct rpc_clnt *);
void (*destroy)(struct rpc_auth *);
- struct rpc_cred * (*crcreate)(int);
+ struct rpc_cred * (*crcreate)(struct auth_cred *, int);
};
struct rpc_credops {
void (*crdestroy)(struct rpc_cred *);
- int (*crmatch)(struct rpc_cred *, int);
+ int (*crmatch)(struct auth_cred *, struct rpc_cred *, int);
u32 * (*crmarshal)(struct rpc_task *, u32 *, int);
int (*crrefresh)(struct rpc_task *);
u32 * (*crvalidate)(struct rpc_task *, u32 *);