bool_t svcauth_gss_unwrap(SVCAUTH *auth, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr) { struct svc_rpc_gss_data *gd; log_debug("in svcauth_gss_unwrap()"); gd = SVCAUTH_PRIVATE(auth); if (!gd->established || gd->sec.svc == RPCSEC_GSS_SVC_NONE) { return ((*xdr_func)(xdrs, xdr_ptr)); } return (xdr_rpc_gss_data(xdrs, xdr_func, xdr_ptr, gd->ctx, gd->sec.qop, gd->sec.svc, gd->seq)); }
bool svcauth_gss_unwrap(SVCAUTH *auth, struct svc_req *req, XDR *xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr) { bool result; struct svc_rpc_gss_data *gd = SVCAUTH_PRIVATE(req->rq_auth); u_int gc_seq = (u_int) (uintptr_t) req->rq_ap1; if (!gd->established || gd->sec.svc == RPCSEC_GSS_SVC_NONE) return ((*xdr_func) (xdrs, xdr_ptr)); mutex_lock(&gd->lock); result = xdr_rpc_gss_data(xdrs, xdr_func, xdr_ptr, gd->ctx, gd->sec.qop, gd->sec.svc, gc_seq); mutex_unlock(&gd->lock); return (result); }
static bool_t Svcauth_gss_unwrap(SVCAUTH * auth, XDR * xdrs, xdrproc_t xdr_func, caddr_t xdr_ptr) { struct svc_rpc_gss_data *gd; gd = SVCAUTH_PRIVATE(auth); if(!gd->established || gd->sec.svc == RPCSEC_GSS_SVC_NONE) { return ((*xdr_func) (xdrs, xdr_ptr)); } #ifndef DONT_USE_WRAPUNWRAP return (Xdr_rpc_gss_data(xdrs, xdr_func, xdr_ptr, gd->ctx, gd->sec.qop, gd->sec.svc, gd->seq)); #else return (xdr_rpc_gss_data(xdrs, xdr_func, xdr_ptr, gd->ctx, gd->sec.qop, gd->sec.svc, gd->seq)); #endif }