Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2008-01-24 20:29:29 +0300
committerCorinna Vinschen <corinna@vinschen.de>2008-01-24 20:29:29 +0300
commitca74821574780c7b526aa827a1617988bb1171cf (patch)
tree97c003b2d0757adf58e641ac8a12918bc13c26e1
parent4be948a34ac7c9da65b402322ed567870f79d42b (diff)
* path.cc (fs_info::update): Fix old-style Samba test to support
recent as well as upcoming Samba releases.
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/path.cc17
2 files changed, 14 insertions, 8 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 7d82ed2f4..cd83841ae 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2008-01-24 Corinna Vinschen <corinna@vinschen.de>
+
+ * path.cc (fs_info::update): Fix old-style Samba test to support
+ recent as well as upcoming Samba releases.
+
2008-01-22 Corinna Vinschen <corinna@vinschen.de>
* ntdll.h (struct _FILE_FS_OBJECTID_INFORMATION): Define.
diff --git a/winsup/cygwin/path.cc b/winsup/cygwin/path.cc
index d24d859de..caa1d190d 100644
--- a/winsup/cygwin/path.cc
+++ b/winsup/cygwin/path.cc
@@ -474,15 +474,15 @@ fs_info::update (PUNICODE_STRING upath, bool exists)
#define GETVOLINFO_VALID_MASK (0x003701ffUL)
#define TEST_GVI(f,m) (((f) & GETVOLINFO_VALID_MASK) == (m))
-#define FS_IS_SAMBA TEST_GVI(flags (), \
+/* Volume quotas are potentially supported since Samba 3.0, object ids and
+ the unicode on disk flag since Samba 3.2. */
+#define SAMBA_IGNORE (FILE_VOLUME_QUOTAS \
+ | FILE_SUPPORTS_OBJECT_IDS \
+ | FILE_UNICODE_ON_DISK)
+#define FS_IS_SAMBA TEST_GVI(flags () & ~SAMBA_IGNORE, \
FILE_CASE_SENSITIVE_SEARCH \
| FILE_CASE_PRESERVED_NAMES \
| FILE_PERSISTENT_ACLS)
-#define FS_IS_SAMBA_WITH_QUOTA TEST_GVI(flags (), \
- FILE_CASE_SENSITIVE_SEARCH \
- | FILE_CASE_PRESERVED_NAMES \
- | FILE_PERSISTENT_ACLS \
- | FILE_VOLUME_QUOTAS)
#define FS_IS_NETAPP_DATAONTAP TEST_GVI(flags (), \
FILE_CASE_SENSITIVE_SEARCH \
| FILE_CASE_PRESERVED_NAMES \
@@ -508,10 +508,11 @@ fs_info::update (PUNICODE_STRING upath, bool exists)
samba_version (extended_info->samba_version);
}
}
- /* Test for older Samba releases not supporting the extended info. */
+ /* Test for Samba on NT4 or for older Samba releases not supporting
+ extended info. */
if (!is_samba ())
is_samba (RtlEqualUnicodeString (&fsname, &testname, FALSE)
- && (FS_IS_SAMBA || FS_IS_SAMBA_WITH_QUOTA));
+ && FS_IS_SAMBA);
is_netapp (!is_samba ()
&& RtlEqualUnicodeString (&fsname, &testname, FALSE)