diff options
Diffstat (limited to 'sunrpc/svc_authux.c')
-rw-r--r-- | sunrpc/svc_authux.c | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/sunrpc/svc_authux.c b/sunrpc/svc_authux.c index 04cff9c..627b7e3 100644 --- a/sunrpc/svc_authux.c +++ b/sunrpc/svc_authux.c @@ -120,8 +120,22 @@ _svcauth_unix (struct svc_req *rqst, struct rpc_msg *msg) stat = AUTH_BADCRED; goto done; } - rqst->rq_xprt->xp_verf.oa_flavor = AUTH_NULL; - rqst->rq_xprt->xp_verf.oa_length = 0; + + /* get the verifier */ + if ((u_int)msg->rm_call.cb_verf.oa_length) + { + rqst->rq_xprt->xp_verf.oa_flavor = + msg->rm_call.cb_verf.oa_flavor; + rqst->rq_xprt->xp_verf.oa_base = + msg->rm_call.cb_verf.oa_base; + rqst->rq_xprt->xp_verf.oa_length = + msg->rm_call.cb_verf.oa_length; + } + else + { + rqst->rq_xprt->xp_verf.oa_flavor = AUTH_NULL; + rqst->rq_xprt->xp_verf.oa_length = 0; + } stat = AUTH_OK; done: XDR_DESTROY (&xdrs); |