Commit 6a8aa246 authored by Yang Tse's avatar Yang Tse
Browse files

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.
parent e25c5283
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -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).
+1 −0
Original line number Diff line number Diff line
@@ -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:

+12 −10
Original line number Diff line number Diff line
@@ -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 */

  if(config->tracetime) {
    tv = cutil_tvnow();
  secs = tv.tv_sec;
  now = localtime(&secs);  /* not multithread safe but we don't care */
  if(config->tracetime)
    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 &&
+8 −2
Original line number Diff line number Diff line
@@ -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);