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]

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


On Feb 28 00:52, Christopher Faylor wrote:
> On Wed, Feb 27, 2013 at 11:54:22PM -0500, Jeffrey Altman wrote:
> >The request is for a developer to assist.  I am more than capable of
> >providing code.  As a contributor to open source projects for more than
> >25 years I am not going to make assumptions about how those who have
> >developed and maintained Cygwin want the software to behave.
> 
> If you are looking for pointers on where to start, look at the
> fhandler*.cc files and path.cc/path.h.  If you have some suggestions
> on how you'd like to add the functionality we can provide pointers.

The core routine is symlink_info::check_reparse_point in path.cc.

Actually, Cygwin always opens files with FILE_OPEN_REPARSE_POINT
and then, if it *is* a reparse point, it reads the contents of the
reparse point and expects it to be of type IO_REPARSE_TAG_SYMLINK
or IO_REPARSE_TAG_MOUNT_POINT.  Those are handled as symlinks.
Other types are not recognized and the FILE_ATTRIBUTE_REPARSE_POINT
attribute is deleted from the DOS attributes.  The later file open
call in fhandler.cc will omit the FILE_OPEN_REPARSE_POINT flag from
the open flags, so it will open the file transparently via the
reparse redirector.

But there's a chance that this doesn't happen in all circumstances as
expected.  As a first cut, look for usage of FILE_OPEN_REPARSE_POINT and
the usage of the path_conv::is_rep_symlink method thoughout fhandler*.cc
and syscalls.cc.


HTH,
Corinna

-- 
Corinna Vinschen                  Please, send mails regarding Cygwin to
Cygwin Maintainer                 cygwin AT cygwin DOT com
Red Hat


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