From 6896ca2cc33bfc80e72a71af2b0588e74234644c Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 18 Feb 2013 21:26:23 -0500 Subject: [PATCH] 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 --- src/WINNT/afsrdr/user/RDRFunction.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) 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) { -- 2.39.5