Lines Matching +full:2 +full:nd
15 * 2. Redistributions in binary form must reproduce the above copyright
115 * safest thing to do is filter them appropriately. For Version 2, the
118 * so I have decided to not do this for Version 2.
1374 nfsrv_wcc(struct nfsrv_descript *nd, int before_ret,
1386 tl += 2;
1388 tl += 2;
1391 nfsrv_postopattr(nd, after_ret, after_nvap);
1395 nfsrv_postopattr(struct nfsrv_descript *nd, int after_ret,
1405 nfsrv_fillattr(nd, after_nvap);
1414 nfsrv_fillattr(struct nfsrv_descript *nd, struct nfsvattr *nvap)
1422 if (nd->nd_flag & ND_NFSV3)
1434 if (nd->nd_flag & ND_NFSV3) {
1473 nfsrv_mtofh(struct nfsrv_descript *nd, struct nfsrvfh *fhp)
1478 if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4)) {
1481 if (len == 0 && nfs_pubfhset && (nd->nd_flag & ND_NFSV3) &&
1482 nd->nd_procnum == NFSPROC_LOOKUP) {
1483 nd->nd_flag |= ND_PUBLOOKUP;
1489 if (len == NFSX_V4PNFSFH && (nd->nd_flag & ND_NFSV41) != 0) {
1492 nd->nd_flag |= ND_DSSERVER;
1494 if (nd->nd_flag & ND_NFSV4) {
1496 error = nfsm_advance(nd, NFSM_RNDUP(len), -1);
1499 nd->nd_repstat = NFSERR_BADHANDLE;
1520 if ((nd->nd_flag & ND_NFSV2) && nfs_pubfhset &&
1521 nd->nd_procnum == NFSPROC_LOOKUP &&
1523 nd->nd_flag |= ND_PUBLOOKUP;
1529 NFSEXITCODE2(error, nd);
1542 nfsd_errmap(struct nfsrv_descript *nd)
1546 if (!nd->nd_repstat)
1548 if ((nd->nd_repstat & NFSERR_AUTHERR) != 0)
1550 if (nd->nd_flag & (ND_NFSV3 | ND_NFSV4)) {
1551 if (nd->nd_procnum == NFSPROC_NOOP)
1552 return (txdr_unsigned(nd->nd_repstat & 0xffff));
1553 if (nd->nd_flag & ND_NFSV3)
1554 errp = defaulterrp = nfsrv_v3errmap[nd->nd_procnum];
1555 else if (nd->nd_repstat == EBADRPC)
1557 else if (nd->nd_repstat == NFSERR_MINORVERMISMATCH ||
1558 nd->nd_repstat == NFSERR_OPILLEGAL)
1559 return (txdr_unsigned(nd->nd_repstat));
1560 else if (nd->nd_repstat == NFSERR_REPLYFROMCACHE)
1562 else if ((nd->nd_flag & ND_NFSV41) != 0) {
1563 if (nd->nd_repstat == EOPNOTSUPP)
1564 nd->nd_repstat = NFSERR_NOTSUPP;
1565 nd->nd_repstat = nfsrv_isannfserr(nd->nd_repstat);
1566 return (txdr_unsigned(nd->nd_repstat));
1568 errp = defaulterrp = nfsrv_v4errmap[nd->nd_procnum];
1570 if (*errp == nd->nd_repstat)
1571 return (txdr_unsigned(nd->nd_repstat));
1574 if (nd->nd_repstat <= NFSERR_REMOTE)
1575 return (txdr_unsigned(nfsrv_v2errmap[nd->nd_repstat - 1]));
1602 nfsrv_checkuidgid(struct nfsrv_descript *nd, struct nfsvattr *nvap)
1620 if (nd->nd_cred->cr_uid == 0)
1622 if ((NFSVNO_ISSETUID(nvap) && nvap->na_uid != nd->nd_cred->cr_uid) ||
1624 !groupmember(nvap->na_gid, nd->nd_cred)))
1628 NFSEXITCODE2(error, nd);
1637 nfsrv_fixattr(struct nfsrv_descript *nd, vnode_t vp,
1652 if ((nd->nd_flag & ND_NFSV4) == 0)
1656 tuid = nd->nd_cred->cr_uid;
1659 nvap->na_uid != nd->nd_cred->cr_uid) {
1660 if (nd->nd_cred->cr_uid == 0) {
1682 if (groupmember(nvap->na_gid, nd->nd_cred)) {
1683 nd->nd_cred->cr_uid = 0;
1692 error = nfsvno_setattr(vp, &nva, nd->nd_cred, p, exp);
1705 error = nfsrv_setacl(vp, aclp, nd->nd_cred, p);
1713 nd->nd_cred->cr_uid = tuid;
1716 NFSEXITCODE2(0, nd);
1762 nfsrv_putreferralattr(struct nfsrv_descript *nd, nfsattrbit_t *retbitp,
1803 prefixnum = nfsrv_putattrbit(nd, &tmpbits);
1835 retnum += nfsm_strtom(nd, "/", 1);
1849 retnum += nfsm_strtom(nd, cp, len);
1857 retnum += nfsm_strtom(nd, cp, len);
1880 nfsrv_parsename(struct nfsrv_descript *nd, char *bufp, u_long *hashp,
1898 if ((nd->nd_flag & ND_NFSV4) && (nd->nd_procnum == NFSV4OP_LOOKUPP ||
1899 nd->nd_procnum == NFSV4OP_SECINFONONAME)) {
1904 outlen = 2;
1912 nd->nd_repstat = NFSERR_NAMETOL;
1916 nd->nd_repstat = NFSERR_INVAL;
1924 fromcp = nd->nd_dpos;
1925 md = nd->nd_md;
1938 nd->nd_repstat = EACCES;
1947 if (nd->nd_flag & ND_PUBLOOKUP) {
1954 * pubtype == 2 -> canonical path
1968 pubtype = 2;
1975 nd->nd_repstat = EACCES;
1981 * For the special case of 2 hex digits after a
1984 * percent == 2 -> indicates "get second hex digit"
1989 nd->nd_repstat = EACCES;
1995 percent = 2;
2004 if (*fromcp == '%' && pubtype == 2) {
2006 * Must be followed by 2 hex digits
2009 nd->nd_repstat = EACCES;
2025 if (nd->nd_flag & ND_NFSV4)
2026 nd->nd_repstat = NFSERR_BADNAME;
2028 nd->nd_repstat = EACCES;
2039 nd->nd_md = md;
2040 nd->nd_dpos = fromcp;
2044 nd->nd_dpos += i;
2046 error = nfsm_advance(nd, i, rem);
2056 if (nd->nd_flag & ND_NFSV4) {
2058 (outlen == 2 && bufp[0] == '.' &&
2060 nd->nd_repstat = NFSERR_BADNAME;
2066 nd->nd_repstat = NFSERR_INVAL;
2077 NFSEXITCODE2(error, nd);
2118 nfsd_checkrootexp(struct nfsrv_descript *nd)
2129 if ((nd->nd_flag & ND_NFSV41) != 0)
2131 if ((nd->nd_flag & (ND_GSS | ND_EXAUTHSYS)) == ND_EXAUTHSYS)
2133 if ((nd->nd_flag & (ND_GSSINTEGRITY | ND_EXGSSINTEGRITY)) ==
2136 if ((nd->nd_flag & (ND_GSSPRIVACY | ND_EXGSSPRIVACY)) ==
2139 if ((nd->nd_flag & (ND_GSS | ND_GSSINTEGRITY | ND_GSSPRIVACY |
2144 if ((nd->nd_flag & ND_EXTLS) == 0)
2146 if ((nd->nd_flag & (ND_TLSCERTUSER | ND_EXTLSCERTUSER)) ==
2149 if ((nd->nd_flag & (ND_TLSCERT | ND_EXTLSCERT | ND_EXTLSCERTUSER)) ==
2152 if ((nd->nd_flag & (ND_TLS | ND_EXTLSCERTUSER | ND_EXTLSCERT)) ==
2157 if ((nd->nd_flag & ND_TLS) == 0)
2169 nfsd_getminorvers(struct nfsrv_descript *nd, u_char *tag, u_char **tagstrp,
2186 error = nfsrv_mtostr(nd, tagstr, taglen);
2193 nd->nd_flag |= ND_NFSV41;
2195 nd->nd_flag |= (ND_NFSV41 | ND_NFSV42);