mirror of
https://github.com/samba-team/samba.git
synced 2025-08-05 12:22:11 +03:00
Fix bug 6529 - Offline files conflict with Vista and Office 2003
On filesystems that can't store less than one second timestamps, round the incoming timestamp set requests so the client can't discover that a time set request has been truncated by the filesystem. Needs backporting to 3.4, 3.3, 3.2 and (even) 3.0. Jeremy
This commit is contained in:
@ -467,6 +467,17 @@ int timespec_compare(const struct timespec *ts1, const struct timespec *ts2)
|
||||
return 0;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
Round up a timespec if nsec > 500000000, round down if lower,
|
||||
then zero nsec.
|
||||
****************************************************************************/
|
||||
|
||||
void round_timespec(struct timespec *ts)
|
||||
{
|
||||
ts->tv_sec += ts->tv_nsec >= 500000000 ? 1 : 0;
|
||||
ts->tv_nsec = 0;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
Interprets an nt time into a unix struct timespec.
|
||||
Differs from nt_time_to_unix in that an 8 byte value of 0xffffffffffffffff
|
||||
|
Reference in New Issue
Block a user