diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2009-10-20 14:12:05 +0400 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2009-10-20 14:12:05 +0400 |
commit | cbea3f7d93e19af536ed8ba8225fb02454dac8ca (patch) | |
tree | 0237bf46aad6f4118c54a27fa9c86f996fc8b101 /winsup | |
parent | 8d648dc5559eb0b9a35c8e064c674cfc720f88cb (diff) |
* fhandler_disk_file.cc (fhander_disk_file::readdir): Handle a status
code STATUS_NOT_SUPPORTED. Add matching comment.
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_disk_file.cc | 9 |
2 files changed, 11 insertions, 3 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index d28435f33..83fea341b 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2009-10-20 Corinna Vinschen <corinna@vinschen.de> + + * fhandler_disk_file.cc (fhander_disk_file::readdir): Handle a status + code STATUS_NOT_SUPPORTED. Add matching comment. + 2009-10-19 Corinna Vinschen <corinna@vinschen.de> * syscalls.cc (internal_setlocale): Only convert $PATH if there is a diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index cc1219322..d65938ce2 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -1870,10 +1870,13 @@ fhandler_disk_file::readdir (DIR *dir, dirent *de) FALSE, NULL, dir->__d_position == 0); /* FileIdBothDirectoryInformation isn't supported for remote drives on NT4 and 2K systems, and it's also not supported on 2K at all, - when accessing network drives on any remote OS. We just fall - back to using a standard directory query in this case and note - this case using the dirent_get_d_ino flag. */ + when accessing network drives on any remote OS. There are also + hacked versions of Samba 3.0.x out there (Debian-based it seems), + which return STATUS_NOT_SUPPORTED rather than handling this info + class. We just fall back to using a standard directory query in + this case and note this case using the dirent_get_d_ino flag. */ if (status == STATUS_INVALID_LEVEL + || status == STATUS_NOT_SUPPORTED || status == STATUS_INVALID_PARAMETER || status == STATUS_INVALID_INFO_CLASS) dir->__flags &= ~dirent_get_d_ino; |