diff options
Diffstat (limited to 'source3/lib')
-rw-r--r-- | source3/lib/system.c | 7 | ||||
-rw-r--r-- | source3/lib/time.c | 27 |
2 files changed, 34 insertions, 0 deletions
diff --git a/source3/lib/system.c b/source3/lib/system.c index 4331691746..8abcb3dc66 100644 --- a/source3/lib/system.c +++ b/source3/lib/system.c @@ -504,6 +504,13 @@ void update_stat_ex_mtime(struct stat_ex *dst, } } +void update_stat_ex_create_time(struct stat_ex *dst, + struct timespec create_time) +{ + dst->st_ex_btime = create_time; + dst->st_ex_calculated_birthtime = false; +} + static void init_stat_ex_from_stat (struct stat_ex *dst, const struct stat *src) { diff --git a/source3/lib/time.c b/source3/lib/time.c index f6ff6d3407..1d2fae3d17 100644 --- a/source3/lib/time.c +++ b/source3/lib/time.c @@ -680,6 +680,33 @@ void unix_timespec_to_nt_time(NTTIME *nt, struct timespec ts) *nt = d; } +#if 0 +void nt_time_to_unix_timespec(struct timespec *ts, NTTIME t) +{ + if (ts == NULL) { + return; + } + + /* t starts in 100 nsec units since 1601-01-01. */ + + t *= 100; + /* t is now in nsec units since 1601-01-01. */ + + t -= TIME_FIXUP_CONSTANT*1000*1000*100; + /* t is now in nsec units since the UNIX epoch 1970-01-01. */ + + ts->tv_sec = t / 1000000000LL; + + if (TIME_T_MIN > ts->tv_sec || ts->tv_sec > TIME_T_MAX) { + ts->tv_sec = 0; + ts->tv_nsec = 0; + return; + } + + ts->tv_nsec = t - ts->tv_sec*1000000000LL; +} +#endif + /**************************************************************************** Convert a time_t to a NTTIME structure |