diff options
| author | Trond Myklebust <trond.myklebust@fys.uio.no> | 2003-01-12 21:40:55 -0800 |
|---|---|---|
| committer | Linus Torvalds <torvalds@penguin.transmeta.com> | 2003-01-12 21:40:55 -0800 |
| commit | 756a93f720ecf1f695691e06712be128bad02be0 (patch) | |
| tree | 3050d3509817be22b9a2c61c7451f742f904508e /include/linux | |
| parent | 68fc0a7808166f84a382a50639f26c1dd9dcd354 (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.h | 12 |
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 *); |
