Bugs item #2958074, was opened at 2010-02-24 16:37
Message generated for change (Tracker Item Submitted) made by spsp
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=100976&aid=2958074&group_id=976
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: debug/info output
Group: wrong behaviour
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: spsp (spsp)
Assigned to: Daniel Stenberg (bagder)
Summary: --trace-time prints system-uptime instead of actual time WIN
Initial Comment:
Windows XP SP3 (32bit)
curl 7.19.7 (i386-pc-win32) libcurl/7.19.7 OpenSSL/0.9.8l zlib/1.2.3 libidn/1.14 libssh2/1.2.1
Protocols: tftp ftp telnet dict ldap http file https ftps scp sftp
Features: IDN Largefile NTLM SSL SSPI libz
(also tried with 7.20.0 and 7.19.5, same result)
curl --trace-time -v -O <some URL or ftp>
In the Output, the time reported doesn't make sense (always low hours 0 / 1 / 2 are reported), neither hours, nor minutes.
Changing System Time has no effect on the curl output. time /T in cmd window reports correct time.
Windows Restart didn't help, BUT! changed the reported time, kinda resetted it to 00 hours.
After looking into the code, I think the time displayed from --trace-time is the Windows uptime instead of the actual time.
main.c [function] my_trace(...)
tv = cutil_tvnow(); // returns uptime, see below
secs = tv.tv_sec;
now = localtime(&secs); /* not multithread safe but we don't care */ // translates uptime to hours, minutes, ... ?
if(config->tracetime)
snprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld ",
now->tm_hour, now->tm_min, now->tm_sec, (long)tv.tv_usec);
crlutil.c
struct timeval cutil_tvnow(void)
{
/*
** GetTickCount() is available on _all_ Windows versions from W95 up
** to nowadays. Returns milliseconds elapsed since last system boot, // <<-- here we have it
** increases monotonically and wraps once 49.7 days have elapsed.
*/
struct timeval now;
DWORD milliseconds = GetTickCount();
now.tv_sec = milliseconds / 1000;
now.tv_usec = (milliseconds % 1000) * 1000;
return now;
}
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=100976&aid=2958074&group_id=976
Received on 2010-02-24