Blame view
net/sunrpc/auth_null.c
2.52 KB
1da177e4c Linux-2.6.12-rc2 |
1 2 3 4 5 6 7 8 9 |
/* * linux/net/sunrpc/auth_null.c * * AUTH_NULL authentication. Really :-) * * Copyright (C) 1996, Olaf Kirch <okir@monad.swb.de> */ #include <linux/types.h> |
1da177e4c Linux-2.6.12-rc2 |
10 |
#include <linux/module.h> |
1da177e4c Linux-2.6.12-rc2 |
11 |
#include <linux/sunrpc/clnt.h> |
1da177e4c Linux-2.6.12-rc2 |
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 |
#ifdef RPC_DEBUG # define RPCDBG_FACILITY RPCDBG_AUTH #endif static struct rpc_auth null_auth; static struct rpc_cred null_cred; static struct rpc_auth * nul_create(struct rpc_clnt *clnt, rpc_authflavor_t flavor) { atomic_inc(&null_auth.au_count); return &null_auth; } static void nul_destroy(struct rpc_auth *auth) { } /* * Lookup NULL creds for current process */ static struct rpc_cred * nul_lookup_cred(struct rpc_auth *auth, struct auth_cred *acred, int flags) { return get_rpccred(&null_cred); } /* * Destroy cred handle. */ static void nul_destroy_cred(struct rpc_cred *cred) { } /* * Match cred handle against current process */ static int nul_match(struct auth_cred *acred, struct rpc_cred *cred, int taskflags) { return 1; } /* * Marshal credential. */ |
d8ed029d6 [SUNRPC]: trivial... |
61 62 |
static __be32 * nul_marshal(struct rpc_task *task, __be32 *p) |
1da177e4c Linux-2.6.12-rc2 |
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
{ *p++ = htonl(RPC_AUTH_NULL); *p++ = 0; *p++ = htonl(RPC_AUTH_NULL); *p++ = 0; return p; } /* * Refresh credential. This is a no-op for AUTH_NULL */ static int nul_refresh(struct rpc_task *task) { |
a17c2153d SUNRPC: Move the ... |
78 |
set_bit(RPCAUTH_CRED_UPTODATE, &task->tk_rqstp->rq_cred->cr_flags); |
1da177e4c Linux-2.6.12-rc2 |
79 80 |
return 0; } |
d8ed029d6 [SUNRPC]: trivial... |
81 82 |
static __be32 * nul_validate(struct rpc_task *task, __be32 *p) |
1da177e4c Linux-2.6.12-rc2 |
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
{ rpc_authflavor_t flavor; u32 size; flavor = ntohl(*p++); if (flavor != RPC_AUTH_NULL) { printk("RPC: bad verf flavor: %u ", flavor); return NULL; } size = ntohl(*p++); if (size != 0) { printk("RPC: bad verf size: %u ", size); return NULL; } return p; } |
f1c0a8615 SUNRPC: Mark auth... |
103 |
const struct rpc_authops authnull_ops = { |
1da177e4c Linux-2.6.12-rc2 |
104 105 |
.owner = THIS_MODULE, .au_flavor = RPC_AUTH_NULL, |
1da177e4c Linux-2.6.12-rc2 |
106 |
.au_name = "NULL", |
1da177e4c Linux-2.6.12-rc2 |
107 108 109 110 111 112 113 114 115 116 |
.create = nul_create, .destroy = nul_destroy, .lookup_cred = nul_lookup_cred, }; static struct rpc_auth null_auth = { .au_cslack = 4, .au_rslack = 2, .au_ops = &authnull_ops, |
81039f1f2 NFS: Display the ... |
117 118 |
.au_flavor = RPC_AUTH_NULL, .au_count = ATOMIC_INIT(0), |
1da177e4c Linux-2.6.12-rc2 |
119 120 121 |
}; static |
f1c0a8615 SUNRPC: Mark auth... |
122 |
const struct rpc_credops null_credops = { |
1da177e4c Linux-2.6.12-rc2 |
123 124 |
.cr_name = "AUTH_NULL", .crdestroy = nul_destroy_cred, |
5c691044e SUNRPC: Add an rp... |
125 |
.crbind = rpcauth_generic_bind_cred, |
1da177e4c Linux-2.6.12-rc2 |
126 127 128 129 130 131 132 133 |
.crmatch = nul_match, .crmarshal = nul_marshal, .crrefresh = nul_refresh, .crvalidate = nul_validate, }; static struct rpc_cred null_cred = { |
e092bdcd9 SUNRPC: cleanup r... |
134 |
.cr_lru = LIST_HEAD_INIT(null_cred.cr_lru), |
4a8c1344d SUNRPC: Add a bac... |
135 |
.cr_auth = &null_auth, |
1da177e4c Linux-2.6.12-rc2 |
136 137 |
.cr_ops = &null_credops, .cr_count = ATOMIC_INIT(1), |
fc432dd90 SUNRPC: Enforce a... |
138 |
.cr_flags = 1UL << RPCAUTH_CRED_UPTODATE, |
1da177e4c Linux-2.6.12-rc2 |
139 140 141 142 |
#ifdef RPC_DEBUG .cr_magic = RPCAUTH_CRED_MAGIC, #endif }; |