DetectionEngine::~DetectionEngine()
{
- clear_packet(context->packet);
+ finish_packet(context->packet);
ContextSwitcher* sw = Snort::get_switcher();
if ( context == sw->get_context() )
return p;
}
-void DetectionEngine::clear_packet(Packet* p)
+void DetectionEngine::finish_packet(Packet* p)
{
log_events(p);
reset(p);
sw->resume(id);
fp_onload(p);
- InspectorManager::clear(p);
- clear_packet(p);
+ finish_packet(p);
+ InspectorManager::clear(p);
sw->complete();
}
void DetectionEngine::inspect(Packet* p)
{
+ bool inspected = false;
{
PacketLatency::Context pkt_latency_ctx { p };
- bool inspected = false;
if ( p->ptrs.decode_flags & DECODE_ERR_FLAGS )
{
// performance hit on short-lived flows
Stream::check_flow_closed(p);
-
- if ( inspected )
- InspectorManager::clear(p);
}
Profile profile(eventqPerfStats);
log_events(p);
- reset(p);
Stream::check_flow_block_pending(p);
+
+ if ( inspected )
+ InspectorManager::clear(p);
+
+ reset(p);
}
//--------------------------------------------------------------------------
static struct SF_EVENTQ* get_event_queue();
static void offload_thread(IpsContext*);
static void onload();
- static void clear_packet(Packet*);
+ static void finish_packet(Packet*);
private:
IpsContext* context;