From: František Dvořák Date: Thu, 1 Apr 2010 10:24:32 +0000 (+0000) Subject: Restore TZ env variable after using it. X-Git-Tag: glite-security-gsoap-plugin_R_2_1_1_1~8 X-Git-Url: http://scientific.zcu.cz/git/?a=commitdiff_plain;h=4b6d95bb6f8b94cdbb23538bbca0abc2f650ac57;p=jra1mw.git Restore TZ env variable after using it. --- diff --git a/org.glite.lbjp-common.db/src/db.c b/org.glite.lbjp-common.db/src/db.c index f4a79f0..c574c7b 100644 --- a/org.glite.lbjp-common.db/src/db.c +++ b/org.glite.lbjp-common.db/src/db.c @@ -134,25 +134,36 @@ void glite_lbu_TimestampToStr(double t, char **str) { time_t glite_lbu_StrToTime(const char *str) { struct tm tm; + char *tz; + time_t t; memset(&tm,0,sizeof(tm)); - putenv("TZ=UTC"); tzset(); + tz = getenv("TZ"); + setenv("TZ", "UTC", 1); + tzset(); + sscanf(str,"%4d-%02d-%02d %02d:%02d:%02d", &tm.tm_year,&tm.tm_mon,&tm.tm_mday, &tm.tm_hour,&tm.tm_min,&tm.tm_sec); tm.tm_year -= 1900; tm.tm_mon--; + t = mktime(&tm); + + if (tz) setenv("TZ", tz, 1); + else unsetenv("TZ"); - return mktime(&tm); + return t; } double glite_lbu_StrToTimestamp(const char *str) { struct tm tm; - double sec; + double sec, t; + char *tz; memset(&tm,0,sizeof(tm)); - putenv("TZ=UTC"); tzset(); + tz = getenv("TZ"); + setenv("TZ", "UTC", 1); sscanf(str,"%4d-%02d-%02d %02d:%02d:%lf", &tm.tm_year,&tm.tm_mon,&tm.tm_mday, &tm.tm_hour,&tm.tm_min,&sec); @@ -160,7 +171,12 @@ double glite_lbu_StrToTimestamp(const char *str) { tm.tm_mon--; tm.tm_sec = sec; - return (sec - tm.tm_sec) + mktime(&tm); + t = (sec - tm.tm_sec) + mktime(&tm); + + if (tz) setenv("TZ", tz, 1); + else unsetenv("TZ"); + + return t; }