summaryrefslogtreecommitdiffabout
path: root/lib/util.cc
Unidiff
Diffstat (limited to 'lib/util.cc') (more/less context) (show whitespace changes)
-rw-r--r--lib/util.cc21
1 files changed, 18 insertions, 3 deletions
diff --git a/lib/util.cc b/lib/util.cc
index d979502..a46ba2a 100644
--- a/lib/util.cc
+++ b/lib/util.cc
@@ -124,2 +124,17 @@ namespace opkele {
124 124
125#ifndef HAVE_TIMEGM
126 static time_t timegm(struct tm *t) {
127 char *tz = getenv("TZ");
128 setenv("TZ","",1); tzset();
129 time_t rv = mktime(t);
130 if(tz)
131 setenv("TZ",tz,1);
132 else
133 unsetenv("TZ");
134 tzset();
135 return rv;
136 }
137 #define timegm opkele::util::timegm
138#endif /* HAVE_TIMEGM */
139
125 time_t w3c_to_time(const string& w) { 140 time_t w3c_to_time(const string& w) {
@@ -147,6 +162,6 @@ namespace opkele {
147 tm_t.tm_year-=1900; 162 tm_t.tm_year-=1900;
148 time_t rv = mktime(&tm_t); 163 time_t rv = timegm(&tm_t);
149 if(rv==(time_t)-1) 164 if(rv==(time_t)-1)
150 throw failed_conversion(OPKELE_CP_ "failed to mktime()"); 165 throw failed_conversion(OPKELE_CP_ "failed to gmtime()");
151 return rv-timezone; 166 return rv;
152 } 167 }