summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES6
-rw-r--r--RELEASE-NOTES1
-rw-r--r--src/main.c22
-rw-r--r--tests/server/util.c10
4 files changed, 27 insertions, 12 deletions
diff --git a/CHANGES b/CHANGES
index 79f0c6ed4..d6013b782 100644
--- a/CHANGES
+++ b/CHANGES
@@ -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);