From: Max T. W. <ma...@mt...> - 2005-07-25 20:29:47
|
"Max T. Woodbury" wrote: > > Earnie Boyd wrote: > > > > On 5:34:48 pm 2005-06-29 "Max T. Woodbury" <ma...@mt...> wrote: > > > "Max T. Woodbury" wrote: > > > > > > > > For the record it blows up on W98SE. Permission denied on current > > > > directory or words to that effect. Virtually identical to what I > > > > ran aground on. > > > > > > > > I've been digging through the various ways things get 'open'ed and > > > > all the disk stuff seems to go through fhandler_base::open, > > > > including opendir. I've tried alternative 'access' and 'share' > > > > values there with no luck. > > > > > > > > I've seen open (".", O_RDONLY) fail, but opendir ends up in the > > > > same code and works. It might have to do with the form of the > > > > name. Let's see... PC_FULL and path_conv::check looks like the > > > > way to check that in syscalls.cc (_open). Can you call 'check' a > > > > second time without loosing strings and stuff? Oh well, that's > > > > just a bit more to read. > > > > > > > > I think a program to test the various directory access routines is > > > > probably the next thing to put in place if this last test fails. > > > > > > Not quite yet but this is still in-queue. > > > > > > > I've backed off on the subject line since it looks like it'll only > > > > take one small fix (even if what that fix is is not known at the > > > > moment). > > > > > > I tried a simple minded change to fhandler_disk<whatever>::open to > > > make it look a bit more like opendir but it didn't work. I'm > > > building the debug .dll at the moment. I'm probably going to need a > > > little advice on how to use it but I'll wait on specific questions > > > until I've tried it once. > > I kludged fhandler_disk::open to return success if fhandler::open failed, > it is not WinNT and the path is a directory. Even with a broken file handle > find.exe then worked properly. I'll check fileutils shortly. However > I am not completely comfortable with this kluge. Should other things be > checked like O_RDONLY? > > And thanks Christopher for the information on Cygwin. It seems a separate > flag is not needed, just the fact that the handle is not valid (that is > ~0) seems to be sufficient. Further testing indicates that this patch introduces other problems. It may be possible to add more work-arounds, but it is not sufficient by itself to get all this working. PLEASE back this patch out, at least for now. mt...@us... |