* Exim - an Internet mail transport agent *
*************************************************/
-/* Copyright (c) University of Cambridge 1995 - 2014 */
+/* Copyright (c) University of Cambridge 1995 - 2017 */
/* See the file NOTICE for conditions of use and distribution. */
/* A function for returning the time of day in various formats */
{
struct timeval now;
struct tm * t;
-int off = 0;
gettimeofday(&now, NULL);
switch(type)
{
case tod_log_bare: /* Format used in logging without timezone */
- off = sprintf(CS timebuf, "%04d-%02d-%02d %02d:%02d:%02d",
+#ifndef COMPILE_UTILITY
+ if (LOGGING(millisec))
+ sprintf(CS timebuf, "%04d-%02d-%02d %02d:%02d:%02d.%03d",
+ 1900 + t->tm_year, 1 + t->tm_mon, t->tm_mday,
+ t->tm_hour, t->tm_min, t->tm_sec, (int)(now.tv_usec/1000));
+ else
+#endif
+ sprintf(CS timebuf, "%04d-%02d-%02d %02d:%02d:%02d",
1900 + t->tm_year, 1 + t->tm_mon, t->tm_mday,
t->tm_hour, t->tm_min, t->tm_sec);
+
break;
/* Format used as suffix of log file name when 'log_datestamp' is active. For
#ifdef TESTING_LOG_DATESTAMP
case tod_log_datestamp_daily:
case tod_log_datestamp_monthly:
- off = sprintf(CS timebuf, "%04d%02d%02d%02d%02d",
+ sprintf(CS timebuf, "%04d%02d%02d%02d%02d",
1900 + t->tm_year, 1 + t->tm_mon, t->tm_mday, t->tm_hour, t->tm_min);
break;
#else
case tod_log_datestamp_daily:
- off = sprintf(CS timebuf, "%04d%02d%02d",
+ sprintf(CS timebuf, "%04d%02d%02d",
1900 + t->tm_year, 1 + t->tm_mon, t->tm_mday);
break;
case tod_log_datestamp_monthly:
- off = sprintf(CS timebuf, "%04d%02d",
+#ifndef COMPILE_UTILITY
+ sprintf(CS timebuf, "%04d%02d",
1900 + t->tm_year, 1 + t->tm_mon);
+#endif
break;
#endif
(void) sprintf(CS timebuf,
"%04d-%02d-%02d %02d:%02d:%02d.%03d %+03d%02d",
1900 + local.tm_year, 1 + local.tm_mon, local.tm_mday,
- local.tm_hour, local.tm_min, local.tm_sec, now.tv_usec/1000,
+ local.tm_hour, local.tm_min, local.tm_sec, (int)(now.tv_usec/1000),
diff_hour, diff_min);
else
#endif
break;
}
-#ifndef COMPILE_UTILITY
-if (LOGGING(millisec) && off > 0)
- (void) sprintf(CS timebuf + off, ".%03d", now.tv_usec/1000);
-#endif
-
return timebuf;
}