Merge in SNORT/snort3 from ~RDEMPSTE/snort3:const_changes to master
Squashed commit of the following:
commit
49533a8a6b24ba425331b874f32326666bb3b6e0
Author: Ron Dempster (rdempste) <rdempste@cisco.com>
Date: Fri Aug 19 13:29:40 2022 -0400
stream: free flow data, if flow is blocked
commit
3634e7e499ca310d8b3a92938682098d5e0aeba8
Author: Ron Dempster (rdempste) <rdempste@cisco.com>
Date: Thu Aug 18 16:45:24 2022 -0400
framework, rna, pub_sub: make data bus get_packet method a const
commit
47beb51ab6055c7bdac4594a2aceed0d96128471
Author: Ron Dempster (rdempste) <rdempste@cisco.com>
Date: Thu Aug 18 16:42:05 2022 -0400
stream: use a const packet to populate the flow key
commit
546c8888f600b139a7877e47b75d469ed3752824
Author: Ron Dempster (rdempste) <rdempste@cisco.com>
Date: Thu Aug 18 16:40:44 2022 -0400
flow: update flow statistics before processing a flow
void Flow::free_flow_data()
{
+ if (!flow_data)
+ return;
const SnortConfig* sc = SnortConfig::get_conf();
PolicySelector* ps = sc->policy_map->get_policy_selector();
NetworkPolicy* np = nullptr;
set_ips_policy(p->context->conf, flow->ips_policy_id);
}
p->filtering_state = flow->filtering_state;
+ update_stats(flow, p);
}
-
else
{
flow->network_policy_id = get_network_policy()->policy_id;
// process expected flows
check_expected_flow(flow, p);
+ update_stats(flow, p);
+
flow->set_client_initiate(p);
DataBus::publish(FLOW_STATE_SETUP_EVENT, p);
break;
}
- update_stats(flow, p);
return news;
}
PacketEvent(Packet* p)
{ packet = p; }
- const Packet* get_packet() override
+ const Packet* get_packet() const override
{ return packet; }
private:
public:
virtual ~DataEvent() = default;
- virtual const Packet* get_packet()
+ virtual const Packet* get_packet() const
{ return nullptr; }
virtual const uint8_t* get_data()
asd.set_service_detected();
}
-static void handle_success(SshEventFlowData& data, SshEvent& event,
+static void handle_success(SshEventFlowData& data, const SshEvent& event,
AppIdSession& asd, AppidChangeBits& change_bits)
{
service_success(data.service_info, *event.get_packet(), asd, change_bits);
public:
CpeOsInfoEvent(const snort::Packet& p) : p(p) { }
- const snort::Packet* get_packet() override
+ const snort::Packet* get_packet() const override
{
return &p;
}
Active::ActiveActionType get_previous_action() const
{ return previous_action; }
- const Packet* get_pkt() const
+ const Packet* get_packet() const override
{ return pkt; }
private:
const snort::AppIdSessionApi& get_appid_session_api() const
{ return api; }
- const snort::Packet* get_packet() override
+ const snort::Packet* get_packet() const override
{ return &p; }
private:
p(packet), service(_service)
{ }
- snort::Packet* get_packet() override
+ snort::Packet* get_packet() const override
{ return p; }
const char* get_service()
public:
CipEvent(const snort::Packet*, const CipEventData*);
- const snort::Packet* get_packet() override
+ const snort::Packet* get_packet() const override
{ return p; }
private:
dst_ip(dst_ip), dst_port(dst_port),
proto(proto), protocol_id(protocol_id) { }
- const snort::Packet* get_packet() override
+ const snort::Packet* get_packet() const override
{ return p; }
const snort::SfIp* get_src_ip() const
memcpy(eth_addr, eth, sizeof(eth_addr));
}
- const snort::Packet* get_packet() override
+ const snort::Packet* get_packet() const override
{ return pkt; }
uint32_t get_ip_address() const
memcpy(eth_addr, eth, sizeof(eth_addr));
}
- const snort::Packet* get_packet() override
+ const snort::Packet* get_packet() const override
{ return pkt; }
unsigned get_op55_len() const
EveProcessEvent(const snort::Packet& p, const char* server) : p(p), server_name(server) { }
- const snort::Packet* get_packet() override { return &p; }
+ const snort::Packet* get_packet() const override { return &p; }
const std::string& get_process_name() const
{
flow_data = fd;
}
- const snort::Packet* get_packet() override
+ const snort::Packet* get_packet() const override
{ return p; }
snort::ExpectFlow* get_expect_flow()
{
}
- const snort::Packet* get_packet() override
+ const snort::Packet* get_packet() const override
{ return pkt; }
DAQ_Verdict& get_verdict()
: pkt(p), record(rec), create_host(cre_host),
create_service(cre_serv), swapped(swp_initiator), serviceID(s_id) { }
- const Packet* get_packet() override
+ const Packet* get_packet() const override
{ return pkt; }
const NetFlowSessionRecord* get_record()
OpportunisticTlsEvent(const snort::Packet* p, const char* service) :
pkt(p), next_service(service) { }
- const snort::Packet* get_packet() override
+ const snort::Packet* get_packet() const override
{ return pkt; }
const char* get_next_service()
RNAEvent(const snort::Packet* p, const NetFlowSessionRecord* rec, const uint32_t service)
: pkt(p), record(rec), service_id(service) { }
- const Packet* get_packet() override
+ const Packet* get_packet() const override
{ return pkt; }
const NetFlowSessionRecord* get_record()
SipEvent(const snort::Packet*, const SIPMsg*, const SIP_DialogData*);
~SipEvent() override;
- const snort::Packet* get_packet() override
+ const snort::Packet* get_packet() const override
{ return p; }
const char* get_from() const
FpSMBDataEvent(const snort::Packet* p, unsigned major, unsigned minor,
uint32_t flags) : pkt(p), major_version(major), minor_version(minor), flags(flags) { }
- const snort::Packet* get_packet() override
+ const snort::Packet* get_packet() const override
{ return pkt; }
unsigned get_fp_smb_major() const
uint8_t get_direction() const
{ return direction; }
- const snort::Packet* get_packet() override
+ const snort::Packet* get_packet() const override
{ return packet; }
private:
return get_flow(&key);
}
-void Stream::populate_flow_key(Packet* p, FlowKey* key)
+void Stream::populate_flow_key(const Packet* p, FlowKey* key)
{
if (!key || !p)
return;
else if (flow->session_state & STREAM_STATE_BLOCK_PENDING)
{
flow->session->clear();
+ flow->free_flow_data();
flow->set_state(Flow::FlowState::BLOCK);
if ( !(p->packet_flags & PKT_STATELESS) )
static FlowKey* get_flow_key(Packet*);
// Populate a session key from the Packet
- static void populate_flow_key(Packet*, FlowKey*);
+ static void populate_flow_key(const Packet*, FlowKey*);
static void set_snort_protocol_id_from_ha(Flow*, const SnortProtocolId);