diff --git a/util.c b/util.c index b9d6bcc..e0039e8 100644 --- a/util.c +++ b/util.c @@ -207,12 +207,12 @@ static int pool_ptr = 0; char * UTI_TimevalToString(struct timeval *tv) { - char buffer[64], *result; - struct tm stm; - stm = *gmtime((time_t *) &(tv->tv_sec)); - strftime(buffer, sizeof(buffer), "%a %x %X", &stm); + char *result; + result = NEXT_BUFFER; - snprintf(result, BUFFER_LENGTH, "%s.%06ld", buffer, (unsigned long)(tv->tv_usec)); + /* TODO: time_t may be wider than long, switch to int64_t before 2038 */ + snprintf(result, BUFFER_LENGTH, "%ld.%06lu", + (long)tv->tv_sec, (unsigned long)tv->tv_usec); return result; }