This is the mail archive of the
cygwin-developers
mailing list for the Cygwin project.
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