+Thu May 31 16:49:13 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
+
+ * Fixed UTC offset minutes to be actually minutes. Affected
+ file is lib/silcutil/silctime.c.
+
Thu May 31 09:40:56 EEST 2007 Pekka Riikonen <priikone@silcnet.org>
* SILC Toolkit 1.1.
struct tm *t;
unsigned int msec = 0;
time_t timeval;
+ SilcInt32 ctz = 0;
if (!ret_time)
return TRUE;
#else
#if defined(HAVE_TIMEZONE)
ret_time->utc_east = timezone < 0 ? 1 : 0;
+ ctz = timezone;
+ if (ret_time->dst)
+ ctz -= 3600;
#elif defined(HAVE_TM_GMTOFF)
ret_time->utc_east = t->tm_gmtoff > 0 ? 1 : 0;
+ ctz = -t->tm_gmtoff;
#elif defined(HAVE___TM_GMTOFF)
ret_time->utc_east = t->__tm_gmtoff > 0 ? 1 : 0;
+ ctz = -t->__tm_gmtoff;
#elif defined(HAVE___TM_GMTOFF__)
ret_time->utc_east = t->__tm_gmtoff__ > 0 ? 1 : 0;
+ ctz = -t->__tm_gmtoff__;
#endif /* HAVE_TIMEZONE */
-#if defined(HAVE_TIMEZONE)
- ret_time->utc_hour = (ret_time->utc_east ? (-(timezone)) / 3600 :
- timezone / 3600);
- if (ret_time->dst)
- ret_time->utc_hour++;
- ret_time->utc_minute = (ret_time->utc_east ? (-(timezone)) % 3600 :
- timezone % 3600);
-#elif defined(HAVE_GMTIME)
- t = gmtime(&timeval);
- if (t) {
- ret_time->utc_hour = (ret_time->utc_east
- ? ret_time->hour - t->tm_hour
- : ret_time->hour + t->tm_hour);
- ret_time->utc_minute = (ret_time->utc_east
- ? ret_time->minute - t->tm_min
- : ret_time->minute + t->tm_min);
- }
-#endif /* HAVE_TIMEZONE */
+ ret_time->utc_hour = (ret_time->utc_east ? (-(ctz)) / 3600 : ctz / 3600);
+ ret_time->utc_minute = (ret_time->utc_east ? (-(ctz)) % 3600 : ctz % 3600);
+ if (ret_time->utc_minute)
+ ret_time->utc_minute /= 60;
#endif /* SILC_WIN32 */
return TRUE;
SILC_LOG_DEBUG(("day : %d", curtime.day));
SILC_LOG_DEBUG(("hour : %d", curtime.hour));
SILC_LOG_DEBUG(("minute : %d", curtime.minute));
+ SILC_LOG_DEBUG(("second : %d", curtime.second));
SILC_LOG_DEBUG(("msecond : %d", curtime.msecond));
SILC_LOG_DEBUG(("utc_hour : %d", curtime.utc_hour));
SILC_LOG_DEBUG(("utc_min : %d", curtime.utc_minute));