return TRUE;
}
+/* SilcTime to epoch */
+
+SilcUInt64 silc_time_epoch(SilcTime timeval)
+{
+ struct tm val;
+
+ if (!timeval)
+ return 0;
+
+ val.tm_sec = timeval->second;
+ val.tm_min = timeval->minute;
+ val.tm_hour = timeval->hour;
+ val.tm_mday = timeval->day;
+ val.tm_mon = timeval->month - 1;
+ val.tm_year = timeval->year - 1900;
+ val.tm_isdst = timeval->dst;
+
+ return (SilcUInt64)mktime(&val);
+}
+
/* Returns timezone */
SilcBool silc_timezone(char *timezone, SilcUInt32 timezone_size)
*
* SYNOPSIS
*
- * SilcBool silc_time_value(SilcInt64 time_val_msec, SilcTime ret_time);
+ * SilcBool silc_time_value(SilcInt64 time_val_msec, SilcTime ret_time);
*
* DESCRIPTION
*
***/
SilcBool silc_time_value(SilcInt64 time_val_msec, SilcTime ret_time);
+/****f* silcutil/silc_time_value
+ *
+ * SYNOPSIS
+ *
+ * SilcUInt64 silc_time_epoch(SilcTime timeval);
+ *
+ * DESCRIPTION
+ *
+ * Converts SilcTime into Epoch time value and returns the converted
+ * value.
+ *
+ ***/
+SilcUInt64 silc_time_epoch(SilcTime timeval);
+
/****f* silcutil/silc_timezone
*
* SYNOPSIS
SILC_STR_END, SILC_STR_END) < 0)
goto err;
+ SILC_LOG_DEBUG(("Print all lines"));
+ silc_snprintf(string, sizeof(string),
+ "Rfoo\n\n\nbazfoobar\nRbarfoofoo\nRbar\nbaz\nRbazfoo");
+ silc_buffer_set(&buf, string, strlen(string));
+ SILC_LOG_DEBUG(("string: %s", string));
+ if (silc_buffer_unformat(&buf,
+ SILC_STR_REGEX("", SILC_STR_REGEX_NL),
+ SILC_STR_FUNC(print, NULL, NULL),
+ SILC_STR_END, SILC_STR_END) < 0)
+ goto err;
+
success = TRUE;
err:
SilcBool success = FALSE;
SilcTimeStruct curtime;
unsigned char ts[32];
+ SilcUInt64 val1, val2;
if (argc > 1 && !strcmp(argv[1], "-d")) {
silc_log_debug(TRUE);
SILC_LOG_DEBUG(("utc_east : %d", curtime.utc_east));
SILC_LOG_DEBUG(("dst : %d", curtime.dst));
+
silc_time_universal_string(&curtime, ts, sizeof(ts));
SILC_LOG_DEBUG(("Universal: %s", ts));
silc_time_generalized_string(&curtime, ts, sizeof(ts));
SILC_LOG_DEBUG(("Generaliz: %s", ts));
+
+ val1 = silc_time();
+ SILC_LOG_DEBUG(("Time: %llu", val1));
+ if (!silc_time_value(val1 * 1000, &curtime))
+ goto err;
+ SILC_LOG_DEBUG(("year : %d", curtime.year));
+ SILC_LOG_DEBUG(("month : %d", curtime.month));
+ 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));
+ SILC_LOG_DEBUG(("utc_east : %d", curtime.utc_east));
+ SILC_LOG_DEBUG(("dst : %d", curtime.dst));
+ val2 = silc_time_epoch(&curtime);
+ SILC_LOG_DEBUG(("Time: %llu", val2));
+ if (!silc_time_value(val2 * 1000, &curtime))
+ goto err;
+ SILC_LOG_DEBUG(("year : %d", curtime.year));
+ SILC_LOG_DEBUG(("month : %d", curtime.month));
+ 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));
+ SILC_LOG_DEBUG(("utc_east : %d", curtime.utc_east));
+ SILC_LOG_DEBUG(("dst : %d", curtime.dst));
+ if (val1 != val2)
+ goto err;
+
success = TRUE;
err: