Пример #1
0
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));
}
Пример #2
0
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);
}
Пример #3
0
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
}