]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tooĺ_writeout: fix the -w time output units
authorDaniel Stenberg <daniel@haxx.se>
Tue, 15 Dec 2020 07:09:29 +0000 (08:09 +0100)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 15 Dec 2020 07:09:29 +0000 (08:09 +0100)
Fix regression from commit fc813f80e1bcac (#6248) that changed the unit
to microseconds instead of seconds with fractions

Reported-by: 不确定
Fixes #6321
Closes #6322

src/tool_writeout.c

index c12738c439aac5fb4abcc44f6108d8c9512c4b82..8b9f590053e57200e26de8bce91fbbe162594fcf 100644 (file)
@@ -106,6 +106,14 @@ static const struct writeoutvar variables[] = {
    0, JSON_NONE}
 };
 
+static void us2sec(FILE *stream, curl_off_t us)
+{
+  curl_off_t secs = us / 1000000;
+  us %= 1000000;
+  fprintf(stream, "%" CURL_FORMAT_CURL_OFF_TU ".%06" CURL_FORMAT_CURL_OFF_TU,
+          secs, us);
+}
+
 void ourWriteOut(CURL *curl, struct per_transfer *per, const char *writeinfo)
 {
   FILE *stream = stdout;
@@ -190,41 +198,41 @@ void ourWriteOut(CURL *curl, struct per_transfer *per, const char *writeinfo)
               case VAR_REDIRECT_TIME:
                 if(CURLE_OK ==
                    curl_easy_getinfo(curl, CURLINFO_REDIRECT_TIME_T, &offinfo))
-                  fprintf(stream, "%" CURL_FORMAT_CURL_OFF_TU, offinfo);
+                  us2sec(stream, offinfo);
                 break;
               case VAR_TOTAL_TIME:
                 if(CURLE_OK ==
                    curl_easy_getinfo(curl, CURLINFO_TOTAL_TIME_T, &offinfo))
-                  fprintf(stream, "%" CURL_FORMAT_CURL_OFF_TU, offinfo);
+                  us2sec(stream, offinfo);
                 break;
               case VAR_NAMELOOKUP_TIME:
                 if(CURLE_OK ==
                    curl_easy_getinfo(curl, CURLINFO_NAMELOOKUP_TIME_T,
                                      &offinfo))
-                  fprintf(stream, "%" CURL_FORMAT_CURL_OFF_TU, offinfo);
+                  us2sec(stream, offinfo);
                 break;
               case VAR_CONNECT_TIME:
                 if(CURLE_OK ==
                    curl_easy_getinfo(curl, CURLINFO_CONNECT_TIME_T, &offinfo))
-                  fprintf(stream, "%" CURL_FORMAT_CURL_OFF_TU, offinfo);
+                  us2sec(stream, offinfo);
                 break;
               case VAR_APPCONNECT_TIME:
                 if(CURLE_OK ==
                    curl_easy_getinfo(curl, CURLINFO_APPCONNECT_TIME_T,
                                      &offinfo))
-                  fprintf(stream, "%" CURL_FORMAT_CURL_OFF_TU, offinfo);
+                  us2sec(stream, offinfo);
                 break;
               case VAR_PRETRANSFER_TIME:
                 if(CURLE_OK ==
                    curl_easy_getinfo(curl, CURLINFO_PRETRANSFER_TIME_T,
                                      &offinfo))
-                  fprintf(stream, "%" CURL_FORMAT_CURL_OFF_TU, offinfo);
+                  us2sec(stream, offinfo);
                 break;
               case VAR_STARTTRANSFER_TIME:
                 if(CURLE_OK ==
                    curl_easy_getinfo(curl, CURLINFO_STARTTRANSFER_TIME_T,
                                      &offinfo))
-                  fprintf(stream, "%" CURL_FORMAT_CURL_OFF_TU, offinfo);
+                  us2sec(stream, offinfo);
                 break;
               case VAR_SIZE_UPLOAD:
                 if(CURLE_OK ==