Blame view
net/sunrpc/auth_null.c
2.64 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 |
|
f895b252d sunrpc: eliminate... |
13 |
#if IS_ENABLED(CONFIG_SUNRPC_DEBUG) |
1da177e4c Linux-2.6.12-rc2 |
14 15 16 17 18 19 20 |
# define RPCDBG_FACILITY RPCDBG_AUTH #endif static struct rpc_auth null_auth; static struct rpc_cred null_cred; static struct rpc_auth * |
c21906610 SUNRPC: Replace c... |
21 |
nul_create(struct rpc_auth_create_args *args, struct rpc_clnt *clnt) |
1da177e4c Linux-2.6.12-rc2 |
22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
{ 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) { |
bd9560805 sunrpc/auth: allo... |
38 39 |
if (flags & RPCAUTH_LOOKUP_RCU) return &null_cred; |
1da177e4c Linux-2.6.12-rc2 |
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
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... |
63 64 |
static __be32 * nul_marshal(struct rpc_task *task, __be32 *p) |
1da177e4c Linux-2.6.12-rc2 |
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
{ *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 ... |
80 |
set_bit(RPCAUTH_CRED_UPTODATE, &task->tk_rqstp->rq_cred->cr_flags); |
1da177e4c Linux-2.6.12-rc2 |
81 82 |
return 0; } |
d8ed029d6 [SUNRPC]: trivial... |
83 84 |
static __be32 * nul_validate(struct rpc_task *task, __be32 *p) |
1da177e4c Linux-2.6.12-rc2 |
85 86 87 88 89 90 91 92 |
{ rpc_authflavor_t flavor; u32 size; flavor = ntohl(*p++); if (flavor != RPC_AUTH_NULL) { printk("RPC: bad verf flavor: %u ", flavor); |
35fa5f7b3 SUNRPC refactor r... |
93 |
return ERR_PTR(-EIO); |
1da177e4c Linux-2.6.12-rc2 |
94 95 96 97 98 99 |
} size = ntohl(*p++); if (size != 0) { printk("RPC: bad verf size: %u ", size); |
35fa5f7b3 SUNRPC refactor r... |
100 |
return ERR_PTR(-EIO); |
1da177e4c Linux-2.6.12-rc2 |
101 102 103 104 |
} return p; } |
f1c0a8615 SUNRPC: Mark auth... |
105 |
const struct rpc_authops authnull_ops = { |
1da177e4c Linux-2.6.12-rc2 |
106 107 |
.owner = THIS_MODULE, .au_flavor = RPC_AUTH_NULL, |
1da177e4c Linux-2.6.12-rc2 |
108 |
.au_name = "NULL", |
1da177e4c Linux-2.6.12-rc2 |
109 110 111 112 113 114 115 116 117 118 |
.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 ... |
119 120 |
.au_flavor = RPC_AUTH_NULL, .au_count = ATOMIC_INIT(0), |
1da177e4c Linux-2.6.12-rc2 |
121 122 123 |
}; static |
f1c0a8615 SUNRPC: Mark auth... |
124 |
const struct rpc_credops null_credops = { |
1da177e4c Linux-2.6.12-rc2 |
125 126 |
.cr_name = "AUTH_NULL", .crdestroy = nul_destroy_cred, |
5c691044e SUNRPC: Add an rp... |
127 |
.crbind = rpcauth_generic_bind_cred, |
1da177e4c Linux-2.6.12-rc2 |
128 129 130 131 132 133 134 135 |
.crmatch = nul_match, .crmarshal = nul_marshal, .crrefresh = nul_refresh, .crvalidate = nul_validate, }; static struct rpc_cred null_cred = { |
e092bdcd9 SUNRPC: cleanup r... |
136 |
.cr_lru = LIST_HEAD_INIT(null_cred.cr_lru), |
4a8c1344d SUNRPC: Add a bac... |
137 |
.cr_auth = &null_auth, |
1da177e4c Linux-2.6.12-rc2 |
138 139 |
.cr_ops = &null_credops, .cr_count = ATOMIC_INIT(1), |
fc432dd90 SUNRPC: Enforce a... |
140 |
.cr_flags = 1UL << RPCAUTH_CRED_UPTODATE, |
f895b252d sunrpc: eliminate... |
141 |
#if IS_ENABLED(CONFIG_SUNRPC_DEBUG) |
1da177e4c Linux-2.6.12-rc2 |
142 143 144 |
.cr_magic = RPCAUTH_CRED_MAGIC, #endif }; |