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.
This commit is contained in:
parent
e25c5283d8
commit
6a8aa246ff
6
CHANGES
6
CHANGES
@ -6,6 +6,12 @@
|
|||||||
|
|
||||||
Changelog
|
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)
|
Patrick Monnerat (22 Feb 2010)
|
||||||
- Proper handling of STARTTLS on SMTP, taking CURLUSESSL_TRY into account.
|
- 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).
|
- SMTP falls back to RFC821 HELO when EHLO fails (and SSL is not required).
|
||||||
|
@ -19,6 +19,7 @@ This release includes the following bugfixes:
|
|||||||
o missing quote in libcurl.m4
|
o missing quote in libcurl.m4
|
||||||
o SMTP: now waits for 250 after the DATA transfer
|
o SMTP: now waits for 250 after the DATA transfer
|
||||||
o SMTP: use angle brackets in RCPT TO
|
o SMTP: use angle brackets in RCPT TO
|
||||||
|
o curl --trace-time not using local time
|
||||||
|
|
||||||
This release includes the following known bugs:
|
This release includes the following known bugs:
|
||||||
|
|
||||||
|
22
src/main.c
22
src/main.c
@ -580,10 +580,7 @@ struct Configurable {
|
|||||||
/* for bandwidth limiting features: */
|
/* for bandwidth limiting features: */
|
||||||
curl_off_t sendpersecond; /* send to peer */
|
curl_off_t sendpersecond; /* send to peer */
|
||||||
curl_off_t recvpersecond; /* receive from 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;
|
||||||
bool ftp_ssl_reqd;
|
bool ftp_ssl_reqd;
|
||||||
bool ftp_ssl_control;
|
bool ftp_ssl_control;
|
||||||
@ -3651,15 +3648,22 @@ int my_trace(CURL *handle, curl_infotype type,
|
|||||||
struct tm *now;
|
struct tm *now;
|
||||||
char timebuf[20];
|
char timebuf[20];
|
||||||
time_t secs;
|
time_t secs;
|
||||||
|
static time_t epoch_offset;
|
||||||
|
static int known_offset;
|
||||||
|
|
||||||
(void)handle; /* prevent compiler warning */
|
(void)handle; /* prevent compiler warning */
|
||||||
|
|
||||||
tv = cutil_tvnow();
|
if(config->tracetime) {
|
||||||
secs = tv.tv_sec;
|
tv = cutil_tvnow();
|
||||||
now = localtime(&secs); /* not multithread safe but we don't care */
|
if(!known_offset) {
|
||||||
if(config->tracetime)
|
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 ",
|
snprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld ",
|
||||||
now->tm_hour, now->tm_min, now->tm_sec, (long)tv.tv_usec);
|
now->tm_hour, now->tm_min, now->tm_sec, (long)tv.tv_usec);
|
||||||
|
}
|
||||||
else
|
else
|
||||||
timebuf[0]=0;
|
timebuf[0]=0;
|
||||||
|
|
||||||
@ -4263,8 +4267,6 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
|
|||||||
config->showerror=TRUE;
|
config->showerror=TRUE;
|
||||||
config->use_httpget=FALSE;
|
config->use_httpget=FALSE;
|
||||||
config->create_dirs=FALSE;
|
config->create_dirs=FALSE;
|
||||||
config->lastrecvtime = cutil_tvnow();
|
|
||||||
config->lastsendtime = cutil_tvnow();
|
|
||||||
config->maxredirs = DEFAULT_MAXREDIRS;
|
config->maxredirs = DEFAULT_MAXREDIRS;
|
||||||
|
|
||||||
if(argc>1 &&
|
if(argc>1 &&
|
||||||
|
@ -72,6 +72,8 @@ void logmsg(const char *msg, ...)
|
|||||||
time_t sec;
|
time_t sec;
|
||||||
struct tm *now;
|
struct tm *now;
|
||||||
char timebuf[20];
|
char timebuf[20];
|
||||||
|
static time_t epoch_offset;
|
||||||
|
static int known_offset;
|
||||||
|
|
||||||
if (!serverlogfile) {
|
if (!serverlogfile) {
|
||||||
fprintf(stderr, "Error: serverlogfile not set\n");
|
fprintf(stderr, "Error: serverlogfile not set\n");
|
||||||
@ -79,8 +81,12 @@ void logmsg(const char *msg, ...)
|
|||||||
}
|
}
|
||||||
|
|
||||||
tv = curlx_tvnow();
|
tv = curlx_tvnow();
|
||||||
sec = tv.tv_sec;
|
if(!known_offset) {
|
||||||
now = localtime(&sec); /* not multithread safe but we don't care */
|
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",
|
snprintf(timebuf, sizeof(timebuf), "%02d:%02d:%02d.%06ld",
|
||||||
(int)now->tm_hour, (int)now->tm_min, (int)now->tm_sec, (long)tv.tv_usec);
|
(int)now->tm_hour, (int)now->tm_min, (int)now->tm_sec, (long)tv.tv_usec);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user