diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2008-01-24 17:29:29 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2008-01-24 17:29:29 +0000 |
commit | ca74821574780c7b526aa827a1617988bb1171cf (patch) | |
tree | 97c003b2d0757adf58e641ac8a12918bc13c26e1 /winsup/cygwin/path.cc | |
parent | 4be948a34ac7c9da65b402322ed567870f79d42b (diff) | |
download | cygnal-ca74821574780c7b526aa827a1617988bb1171cf.tar.gz cygnal-ca74821574780c7b526aa827a1617988bb1171cf.tar.bz2 cygnal-ca74821574780c7b526aa827a1617988bb1171cf.zip |
* path.cc (fs_info::update): Fix old-style Samba test to support
recent as well as upcoming Samba releases.
Diffstat (limited to 'winsup/cygwin/path.cc')
-rw-r--r-- | winsup/cygwin/path.cc | 17 |
1 files changed, 9 insertions, 8 deletions
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) |