This is the mail archive of the cygwin-developers mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Seeking developer to assist with adding OpenAFS Reparse Tag Support to Cygwin


The OpenAFS 1.7.x release series is implemented as a native Windows File
System Redirector.   Microsoft has assigned

  IO_REPARSE_TAG_OPENAFS_DFS              0x00000037L

which is used to identify three types of objects as reparse points.

1. AFS Mount Points.  An AFS mount point is a directory entry which
   refers to the root directory of another volume in the AFS name
   space.

2. AFS Symlinks.  An AFS Symlink behaves similar to a Posix symlink.
   It can be either relative or absolute and can refer to any other
   object in the file system.  An object that is a symlink to a
   directory will report FILE_ATTR_DIRECTORY and
   FILE_ATTR_REPARSE_POINT.  A symlink to any other object will report
   just the FILE_ATTR_REPARSE_POINT flag.

   Unlike a Posix symlink, an AFS symlink can include a component
   whose tail is "@sys" which when evaluated will be replaced with
   a string selected from an ordered list of "system names".

3. AFS UNC Redirection.  This object refers to an arbitrary UNC path
   that does not have to be in the AFS name space.

All reparse points are transparently handled by the file system.
However, as documented by Microsoft


http://msdn.microsoft.com/en-us/library/windows/desktop/aa365682%28v=vs.85%29.aspx

functions including:

  GetFileAttributes
  GetFileAttributesEx
  GetFileSecurity
  FindFirstFile
  FindFirstFileEx
  FindNextFile

will always return information about the reparse point object and not
the target.  As Cygwin at the present time is unaware of the behavior of
the AFS reparse points, it discards them.  However, this can result in
confusing behavior for applications and end users which are confused by
output that conflicts with that which would be obtained by

  fh = CreateFile(path)
  GetFileInformationByHandleW(fh, BasicInfo)
  CloseHandle(hf)

I am seeking an experienced Cygwin developer to work with me to add
knowledge of AFS reparse points to the code base.

Thank you.

Jeffrey Altman
OpenAFS Gatekeeper





Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]