You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@apr.apache.org by "William A. Rowe, Jr." <wr...@rowe-clan.net> on 2003/03/28 18:34:49 UTC
Re: [PATCH]: srclib/apr/file_io/win32/filestat.c (Bug #8014:
Apache cannot handle NTFS Junctions (Symlinks))
At 06:32 AM 3/28/2003, Spinka, Kristofer wrote:
> I'm not 100% this fixes the issue mentioned at
>http://nagoya.apache.org/bugzilla/show_bug.cgi?id=8014 though I tried to
>reproduce the issue as I understood it. If one of the bug submitters
>could test it that would be great. Bill, if you could verify that this
>change is reasonable I would appreciate it, the 'wanted' thing is a
>little vague to me.
>
>--- filestat.c.orig Fri Mar 7 14:21:29 2003
>+++ filestat.c Fri Mar 28 07:16:02 2003
>@@ -363,7 +363,8 @@
> finfo->size = 0x7fffffff;
> #endif
>
>- if (wininfo->dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) {
>+ if (wanted & APR_FINFO_LINK &&
>+ wininfo->dwFileAttributes & FILE_ATTRIBUTE_REPARSE_POINT) {
> finfo->filetype = APR_LNK;
> }
> else if (wininfo->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {
Ok, a reparse point (Junction) is a symlink of sorts pointing at another
Directory. The wanted bit APR_FINFO_LINK tells Apache we want the
actual details about the LINK itself, we don't want the info about the
link target directory.
If we omit APR_FINFO_LINK and the junction is valid, we should return
the stats of the target directory. So your patch looks essentially correct.
Bill