Lines Matching refs:req

260 nfs_gss_sysok(struct nfsreq *req)
262 struct nfsmount *nmp = req->r_nmp;
265 if (req->r_wrongsec) /* Not OK if we're trying to handle a wrongsec error */
285 nfs_gss_clnt_ctx_find(struct nfsreq *req)
287 struct nfsmount *nmp = req->r_nmp;
289 uid_t uid = kauth_cred_getuid(req->r_cred);
297 nfs_gss_clnt_ctx_ref(req, cp);
313 nfs_gss_clnt_ctx_ref(req, cp);
330 if (req->r_thread == NULL) {
331 if (nfs_gss_sysok(req)) {
332 error = nfs_gss_clnt_ctx_failover(req);
351 nfs_gss_clnt_ctx_ref(req, cp);
355 error = nfs_gss_clnt_ctx_init_retry(req, cp); // Initialize new context
357 nfs_gss_clnt_ctx_unref(req);
366 if (error && nfs_gss_sysok(req) &&
369 error = nfs_gss_clnt_ctx_failover(req);
386 nfs_gss_clnt_ctx_failover(struct nfsreq *req)
388 struct nfsmount *nmp = req->r_nmp;
390 uid_t uid = kauth_cred_getuid(req->r_cred);
402 nfs_gss_clnt_ctx_ref(req, cp);
415 nfs_gss_clnt_cred_put(struct nfsreq *req, struct nfsm_chain *nmc, mbuf_t args)
431 if (req->r_nmp) {
432 slpflag |= (NMFLAG(req->r_nmp, INTR) && req->r_thread && !(req->r_flags & R_NOINTR)) ? PCATCH : 0;
433 recordmark = (req->r_nmp->nm_sotype == SOCK_STREAM);
436 if (req->r_gss_ctx == NULL) {
442 error = nfs_gss_clnt_ctx_find(req);
446 cp = req->r_gss_ctx;
465 nfs_gss_clnt_ctx_unref(req);
483 if ((error = nfs_sigintr(req->r_nmp, req, req->r_thread, 0)))
485 nfs_gss_clnt_ctx_unref(req);
505 if ((error = nfs_sigintr(req->r_nmp, req, req->r_thread, 0))) {
512 nfs_gss_clnt_ctx_unref(req);
524 SLIST_INSERT_HEAD(&req->r_gss_seqlist, gsp, gss_seqnext);
581 req->r_gss_arglen = len; // Stash the args len
586 req->r_gss_argoff = nfsm_chain_offset(nmc); // Offset to args
615 req->r_gss_arglen = len; // Stash length
640 req->r_gss_argoff = nfsm_chain_offset(nmc); // Stash offset
671 struct nfsreq *req,
680 struct nfs_gss_clnt_ctx *cp = req->r_gss_ctx;
749 SLIST_FOREACH(gsp, &req->r_gss_seqlist, gss_seqnext) {
797 SLIST_FOREACH(gsp, &req->r_gss_seqlist, gss_seqnext) {
878 SLIST_FOREACH(gsp, &req->r_gss_seqlist, gss_seqnext) {
906 nfs_gss_clnt_args_restore(struct nfsreq *req)
908 struct nfs_gss_clnt_ctx *cp = req->r_gss_ctx;
918 nfsm_chain_dissect_init(error, nmc, req->r_mhead); // start at RPC header
919 nfsm_chain_adv(error, nmc, req->r_gss_argoff); // advance to args
933 nfsm_chain_adv(error, nmc, req->r_gss_arglen); // adv to last args mbuf
949 len = req->r_gss_arglen;
952 req->r_gss_argoff, len, DES_DECRYPT);
953 nfsm_chain_adv(error, nmc, req->r_gss_arglen);
975 nfs_gss_clnt_ctx_init(struct nfsreq *req, struct nfs_gss_clnt_ctx *cp)
977 struct nfsmount *nmp = req->r_nmp;
996 req->r_auth == RPCAUTH_KRB5 ? RPCSEC_GSS_SVC_NONE :
997 req->r_auth == RPCAUTH_KRB5I ? RPCSEC_GSS_SVC_INTEGRITY :
998 req->r_auth == RPCAUTH_KRB5P ? RPCSEC_GSS_SVC_PRIVACY : 0;
1010 error = nfs_gss_clnt_gssd_upcall(req, cp);
1026 error = nfs_gss_clnt_ctx_callserver(req, cp);
1139 nfs_gss_clnt_ctx_init_retry(struct nfsreq *req, struct nfs_gss_clnt_ctx *cp)
1141 struct nfsmount *nmp = req->r_nmp;
1154 slpflag = (NMFLAG(nmp, INTR) && !(req->r_flags & R_NOINTR)) ? PCATCH : 0;
1156 while ((error = nfs_gss_clnt_ctx_init(req, cp)) == ENEEDAUTH) {
1162 error = nfs_sigintr(req->r_nmp, req, current_thread(), 0);
1208 nfs_gss_clnt_ctx_callserver(struct nfsreq *req, struct nfs_gss_clnt_ctx *cp)
1214 if (!req->r_nmp)
1228 error = nfs_request_gss(req->r_nmp->nm_mountp, &nmreq, req->r_thread, req->r_cred,
1229 (req->r_flags & R_OPTMASK), cp, &nmrep, &status);
1279 !req->r_nmp ? unknown :
1280 vfs_statfs(req->r_nmp->nm_mountp)->f_mntfromname,
1369 nfs_gss_clnt_gssd_upcall(struct nfsreq *req, struct nfs_gss_clnt_ctx *cp)
1392 cp->gss_clnt_mport = nfs_gss_clnt_get_upcall_port(req->r_cred);
1444 !req->r_nmp ? unknown :
1445 vfs_statfs(req->r_nmp->nm_mountp)->f_mntfromname,
1520 nfs_gss_clnt_rpcdone(struct nfsreq *req)
1522 struct nfs_gss_clnt_ctx *cp = req->r_gss_ctx;
1534 gsp = SLIST_FIRST(&req->r_gss_seqlist);
1542 SLIST_FOREACH_SAFE(gsp, &req->r_gss_seqlist, gss_seqnext, ngsp) {
1544 SLIST_REMOVE(&req->r_gss_seqlist, gsp, gss_seq, gss_seqnext);
1565 nfs_gss_clnt_ctx_ref(struct nfsreq *req, struct nfs_gss_clnt_ctx *cp)
1567 req->r_gss_ctx = cp;
1580 nfs_gss_clnt_ctx_unref(struct nfsreq *req)
1582 struct nfsmount *nmp = req->r_nmp;
1583 struct nfs_gss_clnt_ctx *cp = req->r_gss_ctx;
1588 req->r_gss_ctx = NULL;
1639 nfs_gss_clnt_ctx_renew(struct nfsreq *req)
1641 struct nfs_gss_clnt_ctx *cp = req->r_gss_ctx;
1642 struct nfsmount *nmp = req->r_nmp;
1654 nfs_gss_clnt_ctx_unref(req);
1692 nfs_gss_clnt_ctx_unref(req);
1693 nfs_gss_clnt_ctx_ref(req, ncp);
1695 error = nfs_gss_clnt_ctx_init_retry(req, ncp); // Initialize new context
1699 nfs_gss_clnt_ctx_unref(req);
1714 struct nfsreq req;
1716 req.r_nmp = nmp;
1725 nfs_gss_clnt_ctx_ref(&req, cp);
1763 nfs_gss_clnt_ctx_unref(&req);
2318 nfsm_chain_add_32(error, nmc, nd->nd_gss_seqnum); // req sequence number
2325 nfsm_chain_add_32(error, nmc, nd->nd_gss_seqnum); // req sequence number