You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2020/06/16 21:41:56 UTC

[trafficserver] branch 9.0.x updated: Traffic Dump: Add server response HTTP version (#6856)

This is an automated email from the ASF dual-hosted git repository.

zwoop pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/9.0.x by this push:
     new 27fd544  Traffic Dump: Add server response HTTP version (#6856)
27fd544 is described below

commit 27fd54423e40305083a3e74dd77f0e3e974be32f
Author: Brian Neradt <br...@gmail.com>
AuthorDate: Fri Jun 12 17:03:02 2020 -0500

    Traffic Dump: Add server response HTTP version (#6856)
    
    Co-authored-by: bneradt <bn...@verizonmedia.com>
    (cherry picked from commit 85d28d9a9b66b9ddd9535eab1cd9c6c8eda0c8e5)
---
 plugins/experimental/traffic_dump/transaction_data.cc | 17 +++++++++--------
 tests/tools/lib/replay_schema.json                    |  7 ++++++-
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/plugins/experimental/traffic_dump/transaction_data.cc b/plugins/experimental/traffic_dump/transaction_data.cc
index 4951f2f..b87a8c6 100644
--- a/plugins/experimental/traffic_dump/transaction_data.cc
+++ b/plugins/experimental/traffic_dump/transaction_data.cc
@@ -118,12 +118,14 @@ TransactionData::write_message_node_no_content(TSMBuffer &buffer, TSMLoc &hdr_lo
   char const *cp     = nullptr;
   TSMLoc url_loc     = nullptr;
 
+  // 1. "version"
+  // Note that we print this for both requests and responses, so the first
+  // element in each has to start with a comma.
+  int version = TSHttpHdrVersionGet(buffer, hdr_loc);
+  result += R"("version":")" + std::to_string(TS_HTTP_MAJOR(version)) + "." + std::to_string(TS_HTTP_MINOR(version)) + '"';
+
   // Log scheme+method+request-target or status+reason based on header type
   if (TSHttpHdrTypeGet(buffer, hdr_loc) == TS_HTTP_TYPE_REQUEST) {
-    // 1. "version"
-    int version = TSHttpHdrVersionGet(buffer, hdr_loc);
-    result += R"("version":")" + std::to_string(TS_HTTP_MAJOR(version)) + "." + std::to_string(TS_HTTP_MINOR(version)) + '"';
-
     TSAssert(TS_SUCCESS == TSHttpHdrUrlGet(buffer, hdr_loc, &url_loc));
     // 2. "scheme":
     cp = TSUrlSchemeGet(buffer, url_loc, &len);
@@ -156,12 +158,11 @@ TransactionData::write_message_node_no_content(TSMBuffer &buffer, TSMLoc &hdr_lo
     TSfree(url);
     TSHandleMLocRelease(buffer, hdr_loc, url_loc);
   } else {
-    // 1. "status":(string)
-    result += R"("status":)" + std::to_string(TSHttpHdrStatusGet(buffer, hdr_loc));
-    // 2. "reason":(string)
+    // 2. "status":(string)
+    result += R"(,"status":)" + std::to_string(TSHttpHdrStatusGet(buffer, hdr_loc));
+    // 3. "reason":(string)
     cp = TSHttpHdrReasonGet(buffer, hdr_loc, &len);
     result += "," + traffic_dump::json_entry("reason", cp, len);
-    // 3. "encoding"
   }
 
   // "headers": [[name(string), value(string)]]
diff --git a/tests/tools/lib/replay_schema.json b/tests/tools/lib/replay_schema.json
index 328c13d..35906f4 100644
--- a/tests/tools/lib/replay_schema.json
+++ b/tests/tools/lib/replay_schema.json
@@ -157,7 +157,7 @@
         "version": {
           "description": "HTTP version",
           "type": "string",
-          "enum": ["0.9", "1.0", "1.1"]
+          "enum": ["0.9", "1.0", "1.1", "2.0"]
         },
         "scheme": {
           "description": "HTTP scheme (request).",
@@ -187,6 +187,11 @@
       "type": "object",
       "required": ["status"],
       "properties": {
+        "version": {
+          "description": "HTTP version",
+          "type": "string",
+          "enum": ["0.9", "1.0", "1.1", "2.0"]
+        },
         "status": {
           "description": "Status code.",
           "type": "number"