On Wed, Sep 16, 2009 at 10:14:55AM +0100, Ian Tighe wrote: > Hi. I hope this has been sent to the right place. > I am using files that are mount.cif share files. My client is a samba linux > box but acting as a client over cifs to an XP box (several in fact). > I am descending the share recursively with opendir and readdir detecting > files ( and of course directories ) before doing my processing. > I note from a wireshark trace I am getting errors - sharing violations > reported by XP. I would very much like to detect these events to take action > - ignore the file for instance - but right now I have a true or false return > from readdir, is_dir, is_file or is_link which is not very helpful during a > fault condition such as a sharing violation. In other words a sharing > violation looks like a readdir saying no more files! > > It seems that once the error condition comes about all my reads of a > directory and tests of file types fail until I reach the end of that > directory and all of its parent directories. This is not so good. > > Am I missing a trick here? If not is it possible to bring out more error > information so that I can detect these events. An error array as an > additional overloaded argument to readdir, opendir (indeed any I/O) where the > first element has the normal true/false perhaps but a second element has a > return code for smb/cifs/file_system failure/error/warning condition?
Exporting the value of errno would be really useful here. However: the value would be OS specific which would damage PHP program portability. Maybe a function like get_last_os_error() might be appropriate. This would return is PHP error number, ie map OS specific info (which is sometimes more than just errno) onto something OS independent. This might be a non tiny amount of work, but is only done if the application *really* wants/needs to know. What the function might return could be an array, where different elements contain different levels of details - including the OS specific stuff (some people are not bothered by portablity). I don't know. -- Alain Williams Linux/GNU Consultant - Mail systems, Web sites, Networking, Programmer, IT Lecturer. +44 (0) 787 668 0256 http://www.phcomp.co.uk/ Parliament Hill Computers Ltd. Registration Information: http://www.phcomp.co.uk/contact.php Past chairman of UKUUG: http://www.ukuug.org/ #include <std_disclaimer.h> -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php