]> git.ipfire.org Git - thirdparty/snort3.git/commitdiff
single method_id and status_code_num
authorTom Peters <thopeter@cisco.com>
Fri, 26 Sep 2014 20:17:47 +0000 (16:17 -0400)
committerTom Peters <thopeter@cisco.com>
Fri, 26 Sep 2014 20:17:47 +0000 (16:17 -0400)
src/service_inspectors/nhttp_inspect/nhttp_flow_data.cc
src/service_inspectors/nhttp_inspect/nhttp_flow_data.h
src/service_inspectors/nhttp_inspect/nhttp_msg_request.cc
src/service_inspectors/nhttp_inspect/nhttp_msg_section.cc
src/service_inspectors/nhttp_inspect/nhttp_msg_status.cc

index 4bd6455bb3e17ced686f5c2a85ce8e06a50d38cb..f2e3748d9c302e2b6b66bdc064ee490a1b78571f 100644 (file)
@@ -53,9 +53,12 @@ void NHttpFlowData::half_reset(SourceId source_id) {
     assert((source_id == SRC_CLIENT) || (source_id == SRC_SERVER));
 
     version_id[source_id] = VERS__NOTPRESENT;
-    method_id[source_id] = METH__NOTPRESENT;
-    status_code_num[source_id] = STAT_NOTPRESENT;
-
+    if (source_id == SRC_CLIENT) {
+        method_id = METH__NOTPRESENT;
+    }
+    else {
+        status_code_num = STAT_NOTPRESENT;
+    }
     data_length[source_id] = STAT_NOTPRESENT;
     body_octets[source_id] = STAT_NOTPRESENT;
 }
@@ -64,8 +67,8 @@ void NHttpFlowData::show(FILE* out_file) const {
     assert(out_file != nullptr);
     fprintf(out_file, "Diagnostic outout from NHttpFlowData (Client/Server):\n");
     fprintf(out_file, "Version ID: %d/%d\n", version_id[0], version_id[1]);
-    fprintf(out_file, "Method ID: %d\n", method_id[0]);
-    fprintf(out_file, "Status code: %d\n", status_code_num[1]);
+    fprintf(out_file, "Method ID: %d\n", method_id);
+    fprintf(out_file, "Status code: %d\n", status_code_num);
     fprintf(out_file, "Type expected: %d/%d\n", type_expected[0], type_expected[1]);
     fprintf(out_file, "Data length: %" PRIi64 "/%" PRIi64 "\n", data_length[0], data_length[1]);
     fprintf(out_file, "Body octets: %" PRIi64 "/%" PRIi64 "\n", body_octets[0], body_octets[1]);
index 626fe2b0fb9460bb74c59e78424e72a551210631..c6d3a1a154e6899e0dc84f23e911a0c6f7d658f5 100644 (file)
@@ -83,11 +83,9 @@ private:
     int64_t data_length[2] = { NHttpEnums::STAT_NOTPRESENT, NHttpEnums::STAT_NOTPRESENT };   // length of the data from Content-Length field      
 
     // Inspector's internal data about the current message
-    // Some items don't apply in both directions. Have two copies anyway just to simplify code and minimize
-    // hard-to-find bugs
     NHttpEnums::VersionId version_id[2] = { NHttpEnums::VERS__NOTPRESENT, NHttpEnums::VERS__NOTPRESENT };
-    NHttpEnums::MethodId method_id[2] = { NHttpEnums::METH__NOTPRESENT, NHttpEnums::METH__NOTPRESENT };
-    int32_t status_code_num[2] = { NHttpEnums::STAT_NOTPRESENT, NHttpEnums::STAT_NOTPRESENT };
+    NHttpEnums::MethodId method_id = NHttpEnums::METH__NOTPRESENT;
+    int32_t status_code_num = NHttpEnums::STAT_NOTPRESENT;
 
     int64_t body_octets[2] = { NHttpEnums::STAT_NOTPRESENT, NHttpEnums::STAT_NOTPRESENT };   // number of user data octets seen so far (regular body or chunks)
 
index 796e1918792eb1ccc1eb806451bff03ba733721a..959bb5267c96caf9c902a8ff566fdd0af4e4ce22 100644 (file)
@@ -162,7 +162,7 @@ void NHttpMsgRequest::update_flow() {
     else {
         session_data->type_expected[source_id] = SEC_HEADER;
         session_data->version_id[source_id] = version_id;
-        session_data->method_id[source_id] = method_id;
+        session_data->method_id = method_id;
     }
 }
 
index 8506cbed5e7102c5ef013fb974c8887a09a69b3b..dd1de27a14a6e45f2c2fd0d692475e58905df054 100644 (file)
@@ -51,8 +51,8 @@ NHttpMsgSection::NHttpMsgSection(const uint8_t *buffer, const uint16_t buf_size,
    scratch_pad(2*buf_size+500),
    infractions(session_data->infractions[source_id]),
    version_id(session_data->version_id[source_id]),
-   method_id(session_data->method_id[source_id]),
-   status_code_num(session_data->status_code_num[source_id]),
+   method_id((source_id == SRC_CLIENT) ? session_data->method_id : METH__NOTPRESENT),
+   status_code_num((source_id == SRC_SERVER) ? session_data->status_code_num : STAT_NOTPRESENT),
    delete_msg_on_destruct(buf_owner)
 {}
 
index d7f9ec3d019f4f84d6069de9667e77256e3a914c..a813919bb2906f64a21418c3afc50c9c4fde5988 100644 (file)
@@ -122,7 +122,7 @@ void NHttpMsgStatus::update_flow() {
     else {
         session_data->type_expected[source_id] = SEC_HEADER;
         session_data->version_id[source_id] = version_id;
-        session_data->status_code_num[source_id] = status_code_num;
+        session_data->status_code_num = status_code_num;
     }
 }