RE: [ZEND-ENGINE-CVS] cvs: TSRM(PHP_5_2) / tsrm_virtual_cwd.c tsrm_virtual_cwd.h php-src NEWS

From: Date: Fri, 10 Nov 2006 16:45:15 +0000
Subject: RE: [ZEND-ENGINE-CVS] cvs: TSRM(PHP_5_2) / tsrm_virtual_cwd.c tsrm_virtual_cwd.h php-src NEWS
References: 1  Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-5391@lists.php.net to get a copy of this message
The original Microsoft implementation of stat() doesn't look for NTFS attributes. So my patch breaks nothing. Dmitry. > -----Original Message----- > From: Nuno Lopes [mailto:nlopess@php.net] > Sent: Friday, November 10, 2006 7:05 PM > To: Wez Furlong > Cc: Dmitry Stogov; zend-engine-cvs@lists.php.net > Subject: Re: [ZEND-ENGINE-CVS] cvs: TSRM(PHP_5_2) / > tsrm_virtual_cwd.c tsrm_virtual_cwd.h php-src NEWS > > > Aaah ok. > Thanks for the explanation, > Nuno > > ----- Original Message ----- > > NTFS uses ACLs which are different from file modes. They are much > > more expensive to obtain, and do not mean the same thing. > If we want > > to support ACLs, we should provide an API that works with > both POSIX > > and NTFS systems. > > > > --Wez. > > > > On 11/10/06, Nuno Lopes <nlopess@php.net> wrote: > >> Hi Dmitry, > >> > >> Glad to see your commits :) > >> > >> > >> > + buf->st_uid = buf->st_gid = buf->st_ino = 0; > >> > + buf->st_mode = (data.dwFileAttributes & > FILE_ATTRIBUTE_DIRECTORY) > >> > + buf->? > >> > (S_IFDIR|S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6)) : S_IFREG; > >> > + buf->st_mode |= (data.dwFileAttributes & > FILE_ATTRIBUTE_READONLY) > >> > + buf->? > >> > (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)) : > >> > > (S_IREAD|(S_IREAD>>3)|(S_IREAD>>6)|S_IWRITE|(S_IWRITE>>3)|(S_IWRITE > >> > >>6)); > >> > + if ((data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) { > >> > + int len = strlen(path); > >> > + > >> > + if (path[len-4] == '.') { > >> > + if (_memicmp(path+len-3, "exe", 3) == 0 || > >> > + _memicmp(path+len-3, "com", 3) == 0 || > >> > + _memicmp(path+len-3, "bat", 3) == 0 || > >> > + _memicmp(path+len-3, "cmd", 3) == 0) { > >> > + buf->st_mode |= (S_IEXEC|(S_IEXEC>>3)|(S_IEXEC>>6)); > >> > + } > >> > + } > >> > + } > >> > >> This logic is correct with FAT, but probably not with NTFS as NTFS > >> supports > >> an execute attribute, which you aren't using here. Also, > you are giving > >> the > >> same permissions for owner/group/user, but again, with > NTFS this is not > >> true > >> at all. > >> However I navigated through the MSDN site and I couldn't find any > >> function > >> to retrieve these NTFS attributes. Anyway, I hope you > understand my > >> point. > >> > >> > >> Nuno > > -- > Zend Engine CVS Mailing List (http://cvs.php.net/) > To unsubscribe, visit: http://www.php.net/unsub.php >

« previous php.zend-engine.cvs (#5391) next »