diff options
author | Andrew Tridgell <tridge@samba.org> | 2002-10-30 12:03:40 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2002-10-30 12:03:40 +0000 |
commit | 809f740166e4c71e7b7027c626336d1e4c58f485 (patch) | |
tree | 92ea2d7d81f17360eb2af6b102abac89f4ea4e56 | |
parent | 567d1d7c211925e82b9384c2c3ada527ab5334c8 (diff) | |
download | samba-809f740166e4c71e7b7027c626336d1e4c58f485.tar.gz samba-809f740166e4c71e7b7027c626336d1e4c58f485.tar.bz2 samba-809f740166e4c71e7b7027c626336d1e4c58f485.zip |
added a timegm() function for systems that don't have it
(This used to be commit 732bc4519f1119100607cc84400e8f84e0c0ba9d)
-rw-r--r-- | source3/configure.in | 2 | ||||
-rw-r--r-- | source3/include/includes.h | 4 | ||||
-rw-r--r-- | source3/lib/replace.c | 22 |
3 files changed, 27 insertions, 1 deletions
diff --git a/source3/configure.in b/source3/configure.in index 206a9edb50..78ed4a953c 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -749,7 +749,7 @@ AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64) AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf) AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink) -AC_CHECK_FUNCS(syslog vsyslog getgrouplist) +AC_CHECK_FUNCS(syslog vsyslog getgrouplist timegm) # setbuffer is needed for smbtorture AC_CHECK_FUNCS(setbuffer) diff --git a/source3/include/includes.h b/source3/include/includes.h index 01b9f14979..a7dd967bf3 100644 --- a/source3/include/includes.h +++ b/source3/include/includes.h @@ -1165,5 +1165,9 @@ int asprintf(char **,const char *, ...) PRINTF_ATTRIBUTE(2,3); #define VA_COPY(dest, src) (dest) = (src) #endif +#ifndef HAVE_TIMEGM +time_t timegm(struct tm *tm); +#endif + #endif /* _INCLUDES_H */ diff --git a/source3/lib/replace.c b/source3/lib/replace.c index fd7b2cf7f0..afdf32dbe8 100644 --- a/source3/lib/replace.c +++ b/source3/lib/replace.c @@ -430,3 +430,25 @@ char *rep_inet_ntoa(struct in_addr ip) #endif /* HAVE_VSYSLOG */ +#ifndef HAVE_TIMEGM +/* + see the timegm man page on linux +*/ + time_t timegm(struct tm *tm) +{ + time_t ret; + char *tz; + + tz = getenv("TZ"); + setenv("TZ", "", 1); + tzset(); + ret = mktime(tm); + if (tz) { + setenv("TZ", tz, 1); + } else { + unsetenv("TZ"); + } + tzset(); + return ret; +} +#endif |