diff --git a/src/flow-manager.c b/src/flow-manager.c index eacd69f300..2a30fdcddc 100644 --- a/src/flow-manager.c +++ b/src/flow-manager.c @@ -265,6 +265,16 @@ static int FlowManagerFlowTimedOut(Flow *f, struct timeval *ts) } int server = 0, client = 0; + + int state = SC_ATOMIC_GET(f->flow_state); + if ((state == FLOW_STATE_LOCAL_BYPASSED) || + (state == FLOW_STATE_CAPTURE_BYPASSED)) { + if (FlowForceReassemblyNeedReassembly(f, &server, &client) == 1) { + FlowForceReassemblyForFlow(f, server, client); + } + return 1; + } + if (!(f->flags & FLOW_TIMEOUT_REASSEMBLY_DONE) && FlowForceReassemblyNeedReassembly(f, &server, &client) == 1) { FlowForceReassemblyForFlow(f, server, client);