Merge in SNORT/snort3 from ~SATHIRKA/snort3:persistent_flag_sunrpc_ff to master
Squashed commit of the following:
commit
16568a1b61156bc63a96accb373e42f53b9e75e6
Author: Sreeja Athirkandathil Narayanan <sathirka@cisco.com>
Date: Mon Jul 18 13:32:32 2022 -0400
appid: set persistent flag for sunrpc expected session
AppIdSession* AppIdSession::create_future_session(const Packet* ctrlPkt, const SfIp* cliIp,
uint16_t cliPort, const SfIp* srvIp, uint16_t srvPort, IpProtocol proto,
- SnortProtocolId snort_protocol_id, bool swap_app_direction, bool bidirectional)
+ SnortProtocolId snort_protocol_id, bool swap_app_direction, bool bidirectional,
+ bool expect_persist)
{
enum PktType type = get_pkt_type_from_ip_proto(proto);
is_session_monitored(asd->flags, ctrlPkt, *inspector);
if (Stream::set_snort_protocol_id_expected(ctrlPkt, type, proto, cliIp,
- cliPort, srvIp, srvPort, snort_protocol_id, asd, swap_app_direction, false, bidirectional))
+ cliPort, srvIp, srvPort, snort_protocol_id, asd, swap_app_direction, false,
+ bidirectional, expect_persist))
{
if (appidDebug->is_active())
{
AppidSessionDirection, AppIdInspector&, OdpContext&);
static AppIdSession* create_future_session(const snort::Packet*, const snort::SfIp*, uint16_t,
const snort::SfIp*, uint16_t, IpProtocol, SnortProtocolId, bool swap_app_direction=false,
- bool bidirectional=false);
+ bool bidirectional=false, bool expect_persist=false);
void initialize_future_session(AppIdSession&, uint64_t);
snort::Flow* flow = nullptr;
const SfIp* dip = pkt->ptrs.ip_api.get_dst();
AppIdSession* fsession = AppIdSession::create_future_session(
pkt, dip, 0, &sip, port, rd->proto,
- asd.config.snort_proto_ids[PROTO_INDEX_SUNRPC]);
+ asd.config.snort_proto_ids[PROTO_INDEX_SUNRPC], false, false, true);
if (fsession)
{
tmp = ntohl(pmr->port);
AppIdSession* pf = AppIdSession::create_future_session(
- pkt, dip, 0, sip, (uint16_t)tmp,
- rd->proto,asd.config.snort_proto_ids[PROTO_INDEX_SUNRPC]);
+ pkt, dip, 0, sip, (uint16_t)tmp, rd->proto,
+ asd.config.snort_proto_ids[PROTO_INDEX_SUNRPC], false, false, true);
if (pf)
{