From: Tom Peters Date: Fri, 26 Sep 2014 20:17:47 +0000 (-0400) Subject: single method_id and status_code_num X-Git-Tag: 3.0.0-233~1402 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f0eb7da5017d9afbb5b82d48d4d3c0e71113a2a6;p=thirdparty%2Fsnort3.git single method_id and status_code_num --- diff --git a/src/service_inspectors/nhttp_inspect/nhttp_flow_data.cc b/src/service_inspectors/nhttp_inspect/nhttp_flow_data.cc index 4bd6455bb..f2e3748d9 100644 --- a/src/service_inspectors/nhttp_inspect/nhttp_flow_data.cc +++ b/src/service_inspectors/nhttp_inspect/nhttp_flow_data.cc @@ -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]); diff --git a/src/service_inspectors/nhttp_inspect/nhttp_flow_data.h b/src/service_inspectors/nhttp_inspect/nhttp_flow_data.h index 626fe2b0f..c6d3a1a15 100644 --- a/src/service_inspectors/nhttp_inspect/nhttp_flow_data.h +++ b/src/service_inspectors/nhttp_inspect/nhttp_flow_data.h @@ -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) diff --git a/src/service_inspectors/nhttp_inspect/nhttp_msg_request.cc b/src/service_inspectors/nhttp_inspect/nhttp_msg_request.cc index 796e19187..959bb5267 100644 --- a/src/service_inspectors/nhttp_inspect/nhttp_msg_request.cc +++ b/src/service_inspectors/nhttp_inspect/nhttp_msg_request.cc @@ -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; } } diff --git a/src/service_inspectors/nhttp_inspect/nhttp_msg_section.cc b/src/service_inspectors/nhttp_inspect/nhttp_msg_section.cc index 8506cbed5..dd1de27a1 100644 --- a/src/service_inspectors/nhttp_inspect/nhttp_msg_section.cc +++ b/src/service_inspectors/nhttp_inspect/nhttp_msg_section.cc @@ -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) {} diff --git a/src/service_inspectors/nhttp_inspect/nhttp_msg_status.cc b/src/service_inspectors/nhttp_inspect/nhttp_msg_status.cc index d7f9ec3d0..a813919bb 100644 --- a/src/service_inspectors/nhttp_inspect/nhttp_msg_status.cc +++ b/src/service_inspectors/nhttp_inspect/nhttp_msg_status.cc @@ -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; } }