git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.3
[linux-2.6.git]
/
net
/
sunrpc
/
svc.c
diff --git
a/net/sunrpc/svc.c
b/net/sunrpc/svc.c
index
14c561d
..
8c5b051
100644
(file)
--- a/
net/sunrpc/svc.c
+++ b/
net/sunrpc/svc.c
@@
-257,12
+257,13
@@
svc_process(struct svc_serv *serv, struct svc_rqst *rqstp)
struct svc_program *progp;
struct svc_version *versp = NULL; /* compiler food */
struct svc_procedure *procp = NULL;
struct svc_program *progp;
struct svc_version *versp = NULL; /* compiler food */
struct svc_procedure *procp = NULL;
- struct
iovec *
argv = &rqstp->rq_arg.head[0];
- struct
iovec *
resv = &rqstp->rq_res.head[0];
+ struct
kvec *
argv = &rqstp->rq_arg.head[0];
+ struct
kvec *
resv = &rqstp->rq_res.head[0];
kxdrproc_t xdr;
u32 *statp;
u32 dir, prog, vers, proc,
auth_stat, rpc_stat;
kxdrproc_t xdr;
u32 *statp;
u32 dir, prog, vers, proc,
auth_stat, rpc_stat;
+ int auth_res;
rpc_stat = rpc_success;
rpc_stat = rpc_success;
@@
-304,12
+305,17
@@
svc_process(struct svc_serv *serv, struct svc_rqst *rqstp)
rqstp->rq_vers = vers = ntohl(svc_getu32(argv)); /* version number */
rqstp->rq_proc = proc = ntohl(svc_getu32(argv)); /* procedure number */
rqstp->rq_vers = vers = ntohl(svc_getu32(argv)); /* version number */
rqstp->rq_proc = proc = ntohl(svc_getu32(argv)); /* procedure number */
+ progp = serv->sv_program;
/*
* Decode auth data, and add verifier to reply buffer.
* We do this before anything else in order to get a decent
* auth verifier.
*/
/*
* Decode auth data, and add verifier to reply buffer.
* We do this before anything else in order to get a decent
* auth verifier.
*/
- switch (svc_authenticate(rqstp, &auth_stat)) {
+ if (progp->pg_authenticate != NULL)
+ auth_res = progp->pg_authenticate(rqstp, &auth_stat);
+ else
+ auth_res = svc_authenticate(rqstp, &auth_stat);
+ switch (auth_res) {
case SVC_OK:
break;
case SVC_GARBAGE:
case SVC_OK:
break;
case SVC_GARBAGE:
@@
-326,7
+332,6
@@
svc_process(struct svc_serv *serv, struct svc_rqst *rqstp)
goto sendit;
}
goto sendit;
}
- progp = serv->sv_program;
if (prog != progp->pg_prog)
goto err_bad_prog;
if (prog != progp->pg_prog)
goto err_bad_prog;