return (*out);
}
+bool HttpMsgHeader::has_supported_encoding() const
+{
+ mock().actualCall("has_supported_encoding");
+ return (bool) mock().getData("has_supported_encoding").getIntValue();
+}
+
const Field& HttpMsgHeader::get_true_ip_addr()
{
Field *out = (Field*)mock().getData("output").getObjectPointer();
void teardown() override
{
+ mock().checkExpectations();
mock().clear();
}
};
+TEST(pub_sub_http_event_test, has_supported_encoding_true)
+{
+ mock().expectOneCall("has_supported_encoding");
+ mock().setData("has_supported_encoding", (int)true);
+ HttpEvent event(nullptr, false, 0);
+
+ CHECK(event.has_supported_encoding());
+}
+
+TEST(pub_sub_http_event_test, has_supported_encoding_false)
+{
+ mock().expectOneCall("has_supported_encoding");
+ mock().setData("has_supported_encoding", (int)false);
+ HttpEvent event(nullptr, false, 0);
+
+ CHECK_FALSE(event.has_supported_encoding());
+}
+
TEST(pub_sub_http_event_test, http_traffic)
{
int64_t stream_id = 0;
header_start = event.get_trueip_addr(header_length);
CHECK(header_length == 0);
CHECK(header_start == nullptr);
- mock().checkExpectations();
}
TEST(pub_sub_http_event_test, true_ip_addr)
header_start = event.get_trueip_addr(header_length);
CHECK(header_length == 7);
CHECK(memcmp(header_start, "1.1.1.1", 7) == 0);
- mock().checkExpectations();
}
TEST(pub_sub_http_event_test, get_method)
header_start = event.get_method(header_length);
CHECK(7 == header_length);
CHECK(memcmp(header_start, "CONNECT", 7) == 0);
- mock().checkExpectations();
}
TEST(pub_sub_http_event_test, get_response_phrase)
header_start = event.get_response_phrase(header_length);
CHECK(7 == header_length);
CHECK(memcmp(header_start, "CONNECT", 7) == 0);
- mock().checkExpectations();
}
TEST(pub_sub_http_event_test, get_all_raw_headers)
header_start = event.get_all_raw_headers(discovered_length);
CHECK(discovered_length == header_length);
CHECK(memcmp(header_start, headers, header_length) == 0);
- mock().checkExpectations();
}
int main(int argc, char** argv)
DataBus::publish(pub_id, evid, http_header_event, flow);
}
+bool HttpMsgHeader::has_supported_encoding() const
+{
+ return encoding_supported;
+}
+
const Field& HttpMsgHeader::get_true_ip()
{
if (true_ip.length() != STAT_NOT_COMPUTE)
return num_cookies;
}
- std::string HttpMsgHeader::get_host_header_field() const
- {
+std::string HttpMsgHeader::get_host_header_field() const
+{
if (host_name.length() > STAT_EMPTY_STRING)
return std::string((const char*)host_name.start(), host_name.length());
return "";
- }
+}
void HttpMsgHeader::gen_events()
{
add_infraction(INF_STACKED_ENCODINGS);
create_event(EVENT_STACKED_ENCODINGS);
compression = CMP_NONE;
+ encoding_supported = false;
}
switch (content_code)
{
case CONTENTCODE_CHUNKED:
add_infraction(INF_CONTENT_ENCODING_CHUNKED);
create_event(EVENT_CONTENT_ENCODING_CHUNKED);
+ encoding_supported = false;
break;
case CONTENTCODE__OTHER:
// The ones we never heard of
HttpModule::increment_peg_counts(PEG_COMPRESSED_UNKNOWN);
add_infraction(INF_UNKNOWN_ENCODING);
create_event(EVENT_UNKNOWN_ENCODING);
+ encoding_supported = false;
break;
default:
// The ones we know by name but don't support
HttpModule::increment_peg_counts(PEG_COMPRESSED_NOT_SUPPORTED);
add_infraction(INF_UNSUPPORTED_ENCODING);
create_event(EVENT_UNSUPPORTED_ENCODING);
+ encoding_supported = false;
break;
}
}