summaryrefslogtreecommitdiff
path: root/source3/lib/time.c
AgeCommit message (Collapse)AuthorFilesLines
2009-08-24Second attempt at fix for bug 6529 - Offline files conflict with Vista and ↵Jeremy Allison1-4/+20
Office 2003. Confirmation from reporter that this fixes the issue in master on ext3/ext4. Back-ports to follow. Jeremy.
2009-08-24Use existing time_t rounding function, don't invent my own.Jeremy Allison1-1/+1
Jeremy.
2009-08-24Second part of fix for 6529 - Offline files conflict with Vista and Office 2003.Jeremy Allison1-0/+10
ext4 may be able to store ns timestamps, but the only API to *set* timestamps takes usec, not nsec. Round to usec on set requests. Jeremy.
2009-08-21Fix bug 6529 - Offline files conflict with Vista and Office 2003Jeremy Allison1-0/+11
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
2009-05-26Introduce "struct stat_ex" as a replacement for SMB_STRUCT_STATVolker Lendecke1-245/+0
This patch introduces struct stat_ex { dev_t st_ex_dev; ino_t st_ex_ino; mode_t st_ex_mode; nlink_t st_ex_nlink; uid_t st_ex_uid; gid_t st_ex_gid; dev_t st_ex_rdev; off_t st_ex_size; struct timespec st_ex_atime; struct timespec st_ex_mtime; struct timespec st_ex_ctime; struct timespec st_ex_btime; /* birthtime */ blksize_t st_ex_blksize; blkcnt_t st_ex_blocks; }; typedef struct stat_ex SMB_STRUCT_STAT; It is really large because due to the friendly libc headers playing macro tricks with fields like st_ino, so I renamed them to st_ex_xxx. Why this change? To support birthtime, we already have quite a few #ifdef's at places where it does not really belong. With a stat struct that we control, we can consolidate the nanosecond timestamps and the birthtime deep in the VFS stat calls. At this moment it is triggered by a request to support the birthtime field for GPFS. GPFS does not extend the system level struct stat, but instead has a separate call that gets us the additional information beyond posix. Without being able to do that within the VFS stat calls, that support would have to be scattered around the main smbd code. It will very likely break all the onefs modules, but I think the changes will be reasonably easy to do.
2009-05-05Make cli_getatr() async.Jeremy Allison1-1/+1
Jeremy.
2009-05-05Make cli_getattrE async.Jeremy Allison1-1/+1
Jeremy.
2009-02-12tidy up timestamp checksBjörn Jacke1-33/+33
AC_CHECK_MEMBERS should be a sufficient check, there's no need to do manual compile tests. We can also assume that we have ctime and atime members when we have the mtime member.
2009-01-29add Tru64 sub-second resolution timestamp supportBjörn Jacke1-0/+24
2009-01-29add missing semicolonsBjörn Jacke1-6/+6
the fixed configure check led to a missing semicolon in the now activated BSD code. Then this error was even copypasted into the new AIX code. grrr
2009-01-29setting mtime setted atime on BSD systems, fix thisBjörn Jacke1-2/+2
2009-01-29add AIX sub-second resolution timestamp supportBjörn Jacke1-0/+24
2009-01-23This change allows for the autoconfigre detection of sub-second time ↵todd stecher1-0/+12
resolution in the FreeBSD stat structure
2008-12-23Fix use of "time offset" parameter, and add test to make sure I don't break ↵Jelmer Vernooij1-2/+0
it again :-)
2008-10-22Use standard types.Jelmer Vernooij1-16/+16
2008-10-11Cope with changed signature of http_timestring().Jelmer Vernooij1-558/+0
2008-08-29Deal with systems that don't initialize birthtime correctly.Jeremy Allison1-4/+10
Pointed out by SATOH Fumiyasu <fumiyas@osstech.jp>. Jeremy. (This used to be commit 4f60348c0a934123a8e15bc741076366f6713390)
2008-08-27Add st_birthtime and friends for accurate create times on systems that ↵Jeremy Allison1-10/+30
support it (*BSD and MacOSX). Should have done this ages ago, sorry. Jeremy. (This used to be commit 4c3a9558906f213948c3bdc081be73f8fed148cb)
2008-06-23time: move uint64s_nt_time_to_unix_abs() to lib/time.cGünther Deschner1-0/+7
Guenther (This used to be commit 58f54f180f0a942776455ab6e813628422493dac)
2008-06-20Fix bug #5531 - fix conversion of ns units when converting from nttime to ↵Jeremy Allison1-2/+6
timespec. Fix from hkurma@datadomain.com. Jeremy. (This used to be commit 8c87a4319cc83f55fb105cae81a8efbc3fb5b98b)
2008-03-28Add a talloc context parameter to current_timestring() to fix memleaks.Michael Adam1-2/+2
current_timestring used to return a string talloced to talloc_tos(). When called by DEBUG from a TALLOC_FREE, this produced messages "no talloc stackframe around, leaking memory". For example when used from net conf. This also adds a temporary talloc context to alloc_sub_basic(). For this purpose, the exit strategy is slightly altered: a common exit point is used for success and failure. Michael (This used to be commit 16b5800d4e3a8b88bac67b2550d14e0aaaa302a9)
2007-12-21Some C++ warningsVolker Lendecke1-2/+2
(This used to be commit 5ab82d4f574f2a2e2761e9e414c66a70aeffb05d)
2007-11-29Remove the explicit TALLOC_CTX * from cli_struct.Jeremy Allison1-3/+3
Make us very explicit about how long a talloc ctx should last. Jeremy. (This used to be commit ba9e2be2b5a59684e854609f9d82ea1633448c62)
2007-10-18RIP BOOL. Convert BOOL -> bool. I found a few interestingJeremy Allison1-12/+12
bugs in various places whilst doing this (places that assumed BOOL == int). I also need to fix the Samba4 pidl generation (next checkin). Jeremy. (This used to be commit f35a266b3cbb3e5fa6a86be60f34fe340a3ca71f)
2007-10-10r24949: Remove some static buffersVolker Lendecke1-10/+8
(This used to be commit df648d47ff3c4e24f439fda839653bda98323100)
2007-10-10r23784: use the GPLv3 boilerplate as recommended by the FSF and the license textAndrew Tridgell1-2/+1
(This used to be commit b0132e94fc5fef936aa766fb99a306b3628e9f07)
2007-10-10r23779: Change from v2 or later to v3 or later.Jeremy Allison1-1/+1
Jeremy. (This used to be commit 407e6e695b8366369b7c76af1ff76869b45347b3)
2007-10-10r23357: timespec_current() was returning the wrong ns timeJeremy Allison1-1/+1
(multiplying tv_sec, not tv_usec). Jeremy. (This used to be commit bafd3b93f9ce74d7a8e2d6b36735f0977a22882c)
2007-10-10r23041: Remainder of fix for 4630: fix special case of unix_to_nt_time() forJim McDonough1-2/+10
TIME_T_MAX, and also display of it in http_timestring() (This used to be commit 2553b6a56d20ef6273001ae3b090e156e676592c)
2007-10-10r23006: Arg. Fix stupid typo in 64-bit path.Jeremy Allison1-1/+1
Jeremy. (This used to be commit 80a63123907c3291d8bdc6d364bf7343f4f084a0)
2007-10-10r23005: If we're running on a system where time_t is 8 bytesJeremy Allison1-0/+31
we have to take care to preserve the "special" values for Windows of 0x80000000 and 0x7FFFFFFF when casting between time_t and uint32. Add conversion functions (and use them). Jeremy. (This used to be commit 4e1a0b2549f7c11326deed2801de19564af0f16a)
2007-10-10r21714: Change the VFS interface to use struct timespecJeremy Allison1-31/+113
for utimes - change the call to ntimes. This preserves nsec timestamps we get from stat (if the system supports it) and only maps back down to usec or sec resolution on time set. Looks bigger than it is as I had to move lots of internal code from using time_t and struct utimebuf to struct timespec. Jeremy. (This used to be commit 8f3d530c5a748ea90f42ed8fbe68ae92178d4875)
2007-10-10r21637: Get "password never expires" account policy working.Jim McDonough1-3/+9
0x8000000000000000LL is "infinity" to NT and should not be converted numerically to time_t. (This used to be commit f3a8048a628753990f9c5401b2bb50c19d4f66e3)
2007-10-10r21060: Start refactoring out the non-return case statementsJeremy Allison1-8/+8
into functions. Jeremy. (This used to be commit 461db3c8ed045cac70eccf3200bf9163dbce5826)
2007-10-10r20695: Remove duplication of constants.Jeremy Allison1-11/+2
Jeremy. (This used to be commit 66cca893e1aa035fa0aa05c0d542848f084fac31)
2007-10-10r20694: To get this right we need to do signed 64-bitJeremy Allison1-7/+7
comparisons here, not unsigned as we're eventually casting into what it normall a signed 32 bit value. Guenther please check (but I think I'm right here). Jeremy. (This used to be commit 31f8e0edc0c3e76654728b2c204faa70830e1f1b)
2007-10-10r20692: Fix bug found by Guenther -Jeremy Allison1-1/+1
Just try to log on in offline mode without the fix: all accounts are expired, although they are set to never expire in the PAC/info3. NTTIME "Never" needs to get (time_t) -1. We were casting a uint64 to time_t before comparing, and we should have been doing it the other way around. Guenther please check this fixes things. Jeremy. (This used to be commit f4e898b6224fd82d9805da771ef6040065de7b12)
2007-10-10r18597: A C++ warningVolker Lendecke1-1/+1
(This used to be commit 528082aed8c24b54d5781c6b3a6062b6cded74ef)
2007-10-10r18188: merge 3.0-libndr branchJelmer Vernooij1-848/+838
(This used to be commit 1115745caed3093c25d6be01ffee21819fb0a675)
2007-10-10r18009: Fixes bug 4026.Derrell Lipman1-1/+1
This completes the work Jeremy began last week, disambiguating the meaning of c_time. (In POSIX terminology, c_time means "status Change time", not "create time".) All uses of c_time, a_time and m_time have now been replaced with change_time, access_time, and write_time, and when creation time is intended, create_time is used. Additionally, the capability of setting and retrieving the create time have been added to the smbc_setxattr() and smbc_getxattr() functions. An example of setting all four times can be seen with the program examples/libsmbclient/testacl with the following command line similar to: testacl -f -S "system.*:CREATE_TIME:1000000000,ACCESS_TIME:1000000060,WRITE_TIME:1000000120,CHANGE_TIME:1000000180" 'smb://server/share/testfile.txt' The -f option turns on the new mode which uses full time names in the attribute specification (e.g. ACCESS_TIME vs A_TIME). (This used to be commit 8e119b64f1d92026dda855d904be09912a40601c)
2007-10-10r17834: Another bug found by Volker's tests in the build farm !Jeremy Allison1-7/+1
Correctly map large nt timevals to TIME_T_MAX. Jeremy. (This used to be commit 63b13d28795bbce6d9fe9e0aa4f518ef94c44f18)
2007-10-10r17831: Attempt to fix the build farm: 0x7fffffffffffffff needs special ↵Volker Lendecke1-0/+6
casing too I think. This broke 'make test' because the newly created user was set to be kicked off Mi, 22 Jan 1975 23:55:33 CET (unix time 159663333) with the setuserinfo21 call. I'm not 100% sure that 0x7ff... means max time as I do it here, I vaguely remember it to mean "don't touch". Does anybody know that for sure? Jeremy, please check this. Thanks, Volker (This used to be commit 872d1299ebffb7b7d696013fc676820f1fa1777c)
2007-10-10r17818: Fixup uint64 time calc. NT time is a 64 bit number,Jeremy Allison1-3/+3
not high value seconds, low value 100ns units. Jeremy. (This used to be commit ead75870d5d3c690fabd131a9dd8776e854638dc)
2007-10-10r17812: Fix bad unsigned comparisons with TIME_T_MIN/TIME_T_MAX.Jeremy Allison1-3/+3
Jeremy. (This used to be commit bd1fbdfb824883060b02be969a10f999d387973f)
2007-10-10r17809: Add in 64-bit integer time calculations (taken fromJeremy Allison1-41/+160
Samba4) for machines that have 64-bit integers. Leave the (double) code for machines that don't. Needs testing.... :-). Jeremy. (This used to be commit 9e65c175b0794bea3082785b5da6f5b281887ce7)
2007-10-10r17800: Start using struct timespec internally for file timesJeremy Allison1-26/+147
on the wire. This allows us to go to nsec resolution for systems that support it. It should also now be easy to add a correct "create time" (birth time) for systems that support it (*BSD). I'll be watching the build farm closely after this one for breakage :-). Jeremy. (This used to be commit 425280a1d23f97ef0b0be77462386d619f47b21d)
2007-10-10r17767: Argggg. Broke the build. Need to fix callers of put_long_date()Jeremy Allison1-68/+29
and interpret_long_date() first. Reverting... Jeremy. (This used to be commit 5d9c308e7b780c956f9810c9f345d1ef32d0f528)
2007-10-10r17766: Getting ready to properly expose 100ns times onJeremy Allison1-29/+68
the wire. Move the internals of nt_time functions to use struct timespecs. Jeremy. (This used to be commit 4ece92f7ef070c86ee7c6f523a207cfaccf84478)
2007-10-10r16945: Sync trunk -> 3.0 for 3.0.24 code. Still needJeremy Allison1-1/+46
to do the upper layer directories but this is what everyone is waiting for.... Jeremy. (This used to be commit 9dafb7f48ca3e7af956b0a7d1720c2546fc4cfb8)
2007-10-10r16230: Fix Klocwork #861 and others. localtime and asctimeJeremy Allison1-6/+32
can return NULL. Ensure we check all returns correctly. Jeremy. (This used to be commit 6c61dc8ed6d84f310ef391fb7700e93ef42c4afc)