From: Jeffrey Altman Date: Tue, 19 Feb 2013 02:26:23 +0000 (-0500) Subject: Windows: EvaluateByName support case-insensitive lookups X-Git-Tag: upstream/1.8.0_pre1^2~1486 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=6896ca2cc33bfc80e72a71af2b0588e74234644c;p=packages%2Fo%2Fopenafs.git Windows: EvaluateByName support case-insensitive lookups Directory lookups in AFS should favor case-sensivite matches but permit case-insensitive matches otherwise. The service should not follow mount points. The redirector exposes mount points as junctions. Change-Id: I34c9244e2756a926f29bbf184dc250e7a29d264f Reviewed-on: http://gerrit.openafs.org/9132 Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/user/RDRFunction.c b/src/WINNT/afsrdr/user/RDRFunction.c index a32cac3f7..34dcef2e1 100644 --- a/src/WINNT/afsrdr/user/RDRFunction.c +++ b/src/WINNT/afsrdr/user/RDRFunction.c @@ -1092,7 +1092,15 @@ RDR_EvaluateNodeByName( IN cm_user_t *userp, return; } - code = cm_Lookup(dscp, wszName, CM_FLAG_CHECKPATH, userp, &req, &scp); + code = cm_Lookup(dscp, wszName, CM_FLAG_CHECKPATH | CM_FLAG_NOMOUNTCHASE, + userp, &req, &scp); + + if (!CaseSensitive && + (code == CM_ERROR_NOSUCHPATH || code == CM_ERROR_NOSUCHFILE || code == CM_ERROR_BPLUS_NOMATCH)) { + code = cm_Lookup(dscp, wszName, + CM_FLAG_CHECKPATH | CM_FLAG_NOMOUNTCHASE | CM_FLAG_CASEFOLD, + userp, &req, &scp); + } if ((code == CM_ERROR_NOSUCHPATH || code == CM_ERROR_NOSUCHFILE || code == CM_ERROR_BPLUS_NOMATCH) && dscp == cm_data.rootSCachep) {