Squashed commit of the following:
commit
2e77716a5729b9cb060140fc871e582eb8ccc036
Author: Bhagya Tholpady <bbantwal@cisco.com>
Date: Mon Oct 24 13:19:39 2016 -0400
setup the trackers after the clearing of session due to expired session
last_pkt_type = p->type();
preemptive_cleanup();
+ flow->set_direction(p);
+ flow->session->precheck(p);
if ( flow->flow_state != Flow::FlowState::SETUP )
set_policies(snort_conf, flow->policy_id);
virtual int process(Packet*) { return 0; }
virtual void restart(Packet*) { }
+ virtual void precheck(Packet*) { }
virtual void clear() = 0;
virtual void cleanup() { clear(); }
}
}
-bool TcpSession::do_packet_analysis_pre_checks(Packet* p, TcpSegmentDescriptor& tsd)
+void TcpSession::precheck(Packet* p)
{
- if ( !is_flow_handling_packets(p) )
- return false;
-
// Check if the session is expired. Should be done before we do something with
// the packet...Insert a packet, or handle state change SYN, FIN, RST, etc.
cleanup_session_if_expired(p);
+}
+
+bool TcpSession::do_packet_analysis_pre_checks(Packet* p, TcpSegmentDescriptor& tsd)
+{
+ if ( !is_flow_handling_packets(p) )
+ return false;
pkt_action_mask = ACTION_NOTHING;
tel.clear_tcp_events();
bool setup(Packet*) override;
void restart(Packet* p) override;
+ void precheck(Packet* p) override;
int process(Packet*) override;
void flush() override;
void TcpSession::update_direction(char, sfip_t const*, unsigned short){ }
int TcpSession::process(Packet*){ return 0; }
void TcpSession::restart(Packet*){ }
+void TcpSession::precheck(Packet*){ }
void TcpSession::clear(){ }
void TcpSession::cleanup(){ }
bool TcpSession::add_alert(Packet*, unsigned int, unsigned int){ return true; }