mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +03:00
*Finally*. Correct patch to fix timestamp problems from Paul Eggert <eggert@twinsun.com>.
I wish I had written this one :-).
Jeremy.
(This used to be commit 8f93c08881
)
This commit is contained in:
parent
ce394449c7
commit
80a180853d
@ -1694,14 +1694,25 @@ static int call_trans2setfilepathinfo(connection_struct *conn,
|
||||
|
||||
case SMB_SET_FILE_BASIC_INFO:
|
||||
{
|
||||
/* Patch to do this correctly from Paul Eggert <eggert@twinsun.com>. */
|
||||
time_t write_time;
|
||||
time_t changed_time;
|
||||
|
||||
/* Ignore create time at offset pdata. */
|
||||
|
||||
/* access time */
|
||||
tvs.actime = interpret_long_date(pdata+8);
|
||||
|
||||
/* write time + changed time, combined. */
|
||||
tvs.modtime=MIN(interpret_long_date(pdata+16),
|
||||
interpret_long_date(pdata+24));
|
||||
write_time = interpret_long_date(pdata+16);
|
||||
changed_time = interpret_long_date(pdata+24);
|
||||
|
||||
tvs.modtime = MAX(write_time, changed_time);
|
||||
|
||||
/* Prefer a defined time to an undefined one. */
|
||||
if (tvs.modtime == (time_t)0 || tvs.modtime == (time_t)-1)
|
||||
tvs.modtime = (write_time == (time_t)0 || write_time == (time_t)-1
|
||||
? changed_time
|
||||
: write_time);
|
||||
|
||||
#if 0 /* Needs more testing... */
|
||||
/* Test from Luke to prevent Win95 from
|
||||
|
Loading…
Reference in New Issue
Block a user