diff options
-rw-r--r-- | CHANGES | 6 | ||||
-rw-r--r-- | RELEASE-NOTES | 1 | ||||
-rw-r--r-- | src/main.c | 22 | ||||
-rw-r--r-- | tests/server/util.c | 10 |
4 files changed, 27 insertions, 12 deletions
@@ -6,6 +6,12 @@ Changelog +Yang Tse (25 Feb 2010) +- I fixed bug report #2958074 indicating + (http://curl.haxx.se/bug/view.cgi?id=2958074) that curl on Windows with + option --trace-time did not use local time when timestamping trace lines. + This could also happen on other systems depending on time souurce. + Patrick Monnerat (22 Feb 2010) - Proper handling of STARTTLS on SMTP, taking CURLUSESSL_TRY into account. - SMTP falls back to RFC821 HELO when EHLO fails (and SSL is not required). diff --git a/RELEASE-NOTES b/RELEASE-NOTES index 1d32f380a..c33e6a0ce 100644 --- a/RELEASE-NOTES +++ b/RELEASE-NOTES @@ -19,6 +19,7 @@ This release includes the following bugfixes: o missing quote in libcurl.m4 o SMTP: now waits for 250 after the DATA transfer o SMTP: use angle brackets in RCPT TO + o curl --trace-time not using local time This release includes the following known bugs: diff --git a/src/main.c b/src/main.c index b60aeb1e6..8acf032fe 100644 --- a/src/main.c +++ b/src/main.c @@ -580,10 +580,7 @@ struct Configurable { /* for bandwidth limiting features: */ curl_off_t sendpersecond; /* send to peer */ curl_off_t recvpersecond; /* receive from peer */ - struct timeval lastsendtime; - size_t lastsendsize; - struct timeval lastrecvtime; - size_t lastrecvsize; + bool ftp_ssl; bool ftp_ssl_reqd; bool ftp_ssl_control; @@ -3651,15 +3648,22 @@ int my_trace(CURL *handle, curl_infotype type, struct tm *now; char timebuf[20]; time_t secs; + static time_t epoch_offset; + static int known_offset; (void)handle; /* prevent compiler warning */ - tv = cutil_tvnow(); - secs = tv.tv_sec; - now = localtime(&secs); /* not multithread safe but we don't care */ - if(config->tracetime) + if(config->tracetime) { + tv = cutil_tvnow(); + if(!known_offset) { + epoch_offset = time(NULL) - tv.tv_sec; + known_offset = 1; + } + secs = epoch_offset + tv.tv_sec; + now = localtime(&secs); /* not thread safe but we don't care */ snprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld ", now->tm_hour, now->tm_min, now->tm_sec, (long)tv.tv_usec); + } else timebuf[0]=0; @@ -4263,8 +4267,6 @@ operate(struct Configurable *config, int argc, argv_item_t argv[]) config->showerror=TRUE; config->use_httpget=FALSE; config->create_dirs=FALSE; - config->lastrecvtime = cutil_tvnow(); - config->lastsendtime = cutil_tvnow(); config->maxredirs = DEFAULT_MAXREDIRS; if(argc>1 && diff --git a/tests/server/util.c b/tests/server/util.c index e8d20ebbd..42abeed87 100644 --- a/tests/server/util.c +++ b/tests/server/util.c @@ -72,6 +72,8 @@ void logmsg(const char *msg, ...) time_t sec; struct tm *now; char timebuf[20]; + static time_t epoch_offset; + static int known_offset; if (!serverlogfile) { fprintf(stderr, "Error: serverlogfile not set\n"); @@ -79,8 +81,12 @@ void logmsg(const char *msg, ...) } tv = curlx_tvnow(); - sec = tv.tv_sec; - now = localtime(&sec); /* not multithread safe but we don't care */ + if(!known_offset) { + epoch_offset = time(NULL) - tv.tv_sec; + known_offset = 1; + } + sec = epoch_offset + tv.tv_sec; + now = localtime(&sec); /* not thread safe but we don't care */ snprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld", (int)now->tm_hour, (int)now->tm_min, (int)now->tm_sec, (long)tv.tv_usec); |