summaryrefslogtreecommitdiffstats
path: root/source/smbd/trans2.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2008-09-10 14:52:34 -0700
committerKarolin Seeger <kseeger@samba.org>2008-09-11 13:16:17 +0200
commitf95b12dc6a2b4d5d1a549b705ae5933cf6d25684 (patch)
tree9af120c2c25500c8dce94c46ffb4d6fd47d25df1 /source/smbd/trans2.c
parente48f855fd72dc150d49641a13bb2a72721e006a5 (diff)
downloadsamba-f95b12dc6a2b4d5d1a549b705ae5933cf6d25684.tar.gz
samba-f95b12dc6a2b4d5d1a549b705ae5933cf6d25684.tar.xz
samba-f95b12dc6a2b4d5d1a549b705ae5933cf6d25684.zip
When requesting UNIX info levels on findfirst/findnext, don't play games with write time,
just return what the underlying filesystem says. Trying not to confuse UNIX apps any more than necessary. Jeremy. (cherry picked from commit 4e06c71a12654d78c9a94fb023e372920bf7618b)
Diffstat (limited to 'source/smbd/trans2.c')
-rw-r--r--source/smbd/trans2.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/source/smbd/trans2.c b/source/smbd/trans2.c
index 7753fad54f9..13105dce0fc 100644
--- a/source/smbd/trans2.c
+++ b/source/smbd/trans2.c
@@ -1938,6 +1938,8 @@ close_if_end = %d requires_resume_key = %d level = 0x%x, max_data_bytes = %d\n",
break;
case SMB_FIND_FILE_UNIX:
case SMB_FIND_FILE_UNIX_INFO2:
+ /* Always use filesystem for UNIX mtime query. */
+ ask_sharemode = false;
if (!lp_unix_extensions()) {
reply_nterror(req, NT_STATUS_INVALID_LEVEL);
return;
@@ -2295,6 +2297,8 @@ resume_key = %d resume name = %s continue=%d level = %d\n",
break;
case SMB_FIND_FILE_UNIX:
case SMB_FIND_FILE_UNIX_INFO2:
+ /* Always use filesystem for UNIX mtime query. */
+ ask_sharemode = false;
if (!lp_unix_extensions()) {
reply_nterror(req, NT_STATUS_INVALID_LEVEL);
return;
@@ -4132,7 +4136,7 @@ total_data=%u (should be %u)\n", (unsigned int)total_data, (unsigned int)IVAL(pd
}
}
- if (!null_timespec(write_time_ts)) {
+ if (!null_timespec(write_time_ts) && !INFO_LEVEL_IS_UNIX(info_level)) {
mtime_ts = write_time_ts;
}