|
|
|
@ -171,16 +171,9 @@ static void CheckWorkQueue(ThreadVars *tv, FlowWorkerThreadData *fw,
|
|
|
|
FLOWLOCK_WRLOCK(f);
|
|
|
|
FLOWLOCK_WRLOCK(f);
|
|
|
|
f->flow_end_flags |= FLOW_END_FLAG_TIMEOUT; //TODO emerg
|
|
|
|
f->flow_end_flags |= FLOW_END_FLAG_TIMEOUT; //TODO emerg
|
|
|
|
|
|
|
|
|
|
|
|
const FlowStateType state = f->flow_state;
|
|
|
|
|
|
|
|
if (f->proto == IPPROTO_TCP) {
|
|
|
|
if (f->proto == IPPROTO_TCP) {
|
|
|
|
if (!(f->flags & FLOW_TIMEOUT_REASSEMBLY_DONE) &&
|
|
|
|
if (!(f->flags & FLOW_TIMEOUT_REASSEMBLY_DONE) && !FlowIsBypassed(f) &&
|
|
|
|
#ifdef CAPTURE_OFFLOAD
|
|
|
|
FlowForceReassemblyNeedReassembly(f) == 1 && f->ffr != 0) {
|
|
|
|
state != FLOW_STATE_CAPTURE_BYPASSED &&
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
state != FLOW_STATE_LOCAL_BYPASSED &&
|
|
|
|
|
|
|
|
FlowForceReassemblyNeedReassembly(f) == 1 &&
|
|
|
|
|
|
|
|
f->ffr != 0)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
int cnt = FlowFinish(tv, f, fw, detect_thread);
|
|
|
|
int cnt = FlowFinish(tv, f, fw, detect_thread);
|
|
|
|
counters->flows_aside_pkt_inject += cnt;
|
|
|
|
counters->flows_aside_pkt_inject += cnt;
|
|
|
|
counters->flows_aside_needs_work++;
|
|
|
|
counters->flows_aside_needs_work++;
|
|
|
|
|