Merge in SNORT/snort3 from ~MDAGON/snort3:conn_event to master
Squashed commit of the following:
commit
bf95668b7ea4fc66c9afcebcf658ae3fa1f78949
Author: maya dagon <mdagon@cisco.com>
Date: Fri Oct 25 14:13:30 2024 -0400
flow: publish flow end event
Flow::~Flow()
{
+ DataBus::publish(intrinsic_pub_id, IntrinsicEventIds::FLOW_END, nullptr, this);
+
free_flow_data();
delete session;
#ifdef UNIT_TEST
#include "catch/snort_catch.h"
+#include "main/policy.h"
TEST_CASE("vba_data test", "[ips_vba_data]")
{
SECTION("null gadget")
{
- Flow f;
- p.flow = &f;
+ Flow* f = new Flow();
+ InspectionPolicy ins;
+ set_inspection_policy(&ins);
+ NetworkPolicy net;
+ set_network_policy(&net);
+
+ p.flow = f;
p.flow->gadget = nullptr;
Cursor c(&p);
REQUIRE(vba_data_opt.eval(c, &p) == IpsOption::NO_MATCH);
+
+ delete f;
}
}
{
timeval curr_time;
Packet p;
- Flow flow;
- p.flow=&flow;
+ Flow* flow = new Flow();
+ p.flow=flow;
DiscoveryFilter filter("");
RnaTracker ht(new HostTracker);
RnaTracker rt;
uint32_t last_seen;
+ InspectionPolicy ins;
+ set_inspection_policy(&ins);
+ NetworkPolicy net;
+ set_network_policy(&net);
+
// test the server path
curr_time.tv_sec = 12345678;
packet_time_update(&curr_time);
last_seen = ht->get_last_seen();
CHECK(last_seen == curr_time.tv_sec);
- flow.free_flow_data();
+ flow->free_flow_data();
+
+ delete flow;
}
#endif
RNAFlow::init();
RNAFlow* rna_flow = new RNAFlow();
Packet p;
- Flow flow;
- p.flow = &flow;
+ Flow* flow = new Flow();
+ p.flow = flow;
p.flow->set_flow_data(rna_flow);
+ InspectionPolicy ins;
+ set_inspection_policy(&ins);
+ NetworkPolicy net;
+ set_network_policy(&net);
// Fill packet structure with required information
eth::EtherHdr eh;
delete(cpeevent);
p.flow->free_flow_data(rna_flow);
+
+ delete flow;
}
}
#endif
FLOW_STATE_SETUP,
FLOW_STATE_RELOADED,
FLOW_ASSISTANT_GADGET,
+ FLOW_END,
EXPECT_HANDLE_FLOWS,
EXPECT_EARLY_SESSION,
TEST_CASE("IP Session", "[ip_session]")
{
- Flow lws;
+ Flow* lws = new Flow();
Packet p(false);
DAQ_PktHdr_t dh = {};
p.pkth = &dh;
+ InspectionPolicy ins;
+ set_inspection_policy(&ins);
+ NetworkPolicy net;
+ set_network_policy(&net);
SECTION("update_session without inspector")
{
- lws.ssn_server = nullptr;
+ lws->ssn_server = nullptr;
- update_session(&p, &lws);
- CHECK(lws.expire_time == 0);
+ update_session(&p, lws);
+ CHECK(lws->expire_time == 0);
}
SECTION("update_session with inspector")
{
StreamIpConfig* sic = new StreamIpConfig;
sic->session_timeout = 360;
- lws.set_default_session_timeout(sic->session_timeout, true);
+ lws->set_default_session_timeout(sic->session_timeout, true);
StreamIp si(sic);
- lws.ssn_server = &si;
+ lws->ssn_server = &si;
- update_session(&p, &lws);
- CHECK(lws.expire_time == 360);
- lws.ssn_server = nullptr;
+ update_session(&p, lws);
+ CHECK(lws->expire_time == 360);
+ lws->ssn_server = nullptr;
}
+
+ delete lws;
}
#endif
// initialization code here
TcpNormalizerFactory::initialize();
Flow* flow = new Flow;
+ InspectionPolicy ins;
+ set_inspection_policy(&ins);
+ NetworkPolicy net;
+ set_network_policy(&net);
SECTION("set/get ignore direction")
{
Flow* flow = new Flow;
Packet* pkt = get_syn_packet(flow);
Cursor cursor(pkt);
+ InspectionPolicy ins;
+ set_inspection_policy(&ins);
+ NetworkPolicy net;
+ set_network_policy(&net);
SECTION("reassembler initialization")
{