diff options
author | jerenkrantz <jerenkrantz@13f79535-47bb-0310-9956-ffa450edef68> | 2002-01-10 23:46:43 +0000 |
---|---|---|
committer | jerenkrantz <jerenkrantz@13f79535-47bb-0310-9956-ffa450edef68> | 2002-01-10 23:46:43 +0000 |
commit | d02f2ff035403a2c7932dfc69e151c6cf129008a (patch) | |
tree | 88cd046bfd9ca41777c1c7189ce35a628dcb51dd /time/unix | |
parent | 1100fd948bf057df8b5d91ede1ba25c3ef95baba (diff) | |
download | libapr-d02f2ff035403a2c7932dfc69e151c6cf129008a.tar.gz |
Fix GMT offset calculations for platforms that do not have native GMT
offsets.
Submitted by: Jon Travis <jtravis@covalent.net>
Reviewed by: Justin, Brian, David
git-svn-id: http://svn.apache.org/repos/asf/apr/apr/trunk@62744 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'time/unix')
-rw-r--r-- | time/unix/time.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/time/unix/time.c b/time/unix/time.c index 8eb9aba67..92a3eece0 100644 --- a/time/unix/time.c +++ b/time/unix/time.c @@ -92,6 +92,9 @@ static apr_int32_t get_offset(struct tm *tm) if (daylightOnOff) { return server_gmt_offset + daylightOffset; } +#else + if(tm->tm_isdst) + return server_gmt_offset + 3600; #endif return server_gmt_offset; #endif @@ -341,7 +344,6 @@ APR_DECLARE(void) apr_unix_setup_time(void) struct timeval now; time_t t1, t2; struct tm t; - int was_dst; gettimeofday(&now, NULL); t1 = now.tv_sec; @@ -352,10 +354,9 @@ APR_DECLARE(void) apr_unix_setup_time(void) #else t = *gmtime(&t1); #endif - was_dst = (t.tm_isdst > 0); t.tm_isdst = -1; t2 = mktime(&t); - server_gmt_offset = (apr_int32_t) difftime(t1, t2) + (was_dst ? 3600 : 0); + server_gmt_offset = (apr_int32_t) difftime(t1, t2); #endif } |