OpenCores
URL https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk

Subversion Repositories or1k_soc_on_altera_embedded_dev_kit

[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [net/] [sunrpc/] [auth_null.c] - Blame information for rev 17

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.