From: Jeffrey Altman Date: Wed, 2 Nov 2011 23:27:42 +0000 (-0400) Subject: Windows: always set reparse point attrib for symlink X-Git-Tag: upstream/1.8.0_pre1^2~3097 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=d8f357b9838509c5a5cfa22a85dffcd962804025;p=packages%2Fo%2Fopenafs.git Windows: always set reparse point attrib for symlink Make sure that we always set the reparse point attribute for symlinks in directory enumerations and attribute queries. Change-Id: Ie7520cef64793e3385f229934189fc56a3edb584 Reviewed-on: http://gerrit.openafs.org/5793 Tested-by: Jeffrey Altman Reviewed-by: Jeffrey Altman --- diff --git a/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp b/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp index 1c5a8cc66..cf7ec7be6 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp @@ -766,6 +766,8 @@ AFSQueryDirectory( IN PIRP Irp) &stFileInfo))) { + ulAdditionalAttributes = FILE_ATTRIBUTE_REPARSE_POINT; + bUseFileInfo = TRUE; } } @@ -851,7 +853,7 @@ AFSQueryDirectory( IN PIRP Irp) pDirInfo->EndOfFile = stFileInfo.EndOfFile; pDirInfo->AllocationSize = stFileInfo.AllocationSize; - pDirInfo->FileAttributes = stFileInfo.FileAttributes; + pDirInfo->FileAttributes = stFileInfo.FileAttributes | ulAdditionalAttributes; } else if( BooleanFlagOn( pDirEntry->Flags, AFS_DIR_ENTRY_FAKE)) { diff --git a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp index bd98b3e42..965950558 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp @@ -780,6 +780,8 @@ AFSQueryBasicInfo( IN PIRP Irp, &stFileInfo))) { ulFileAttribs = stFileInfo.FileAttributes; + + ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT; } } @@ -1329,6 +1331,8 @@ AFSQueryNetworkInfo( IN PIRP Irp, &stFileInfo))) { ulFileAttribs = stFileInfo.FileAttributes; + + ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT; } } @@ -1484,6 +1488,8 @@ AFSQueryAttribTagInfo( IN PIRP Irp, &stFileInfo))) { ulFileAttribs = stFileInfo.FileAttributes; + + ulFileAttribs |= FILE_ATTRIBUTE_REPARSE_POINT; } }