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

Reply via email to