| 
						
						
							
								
							
						
						
					 | 
				
			
			 | 
			 | 
			
				@ -627,13 +627,13 @@ Flow *FlowGetFlowFromHash(ThreadVars *tv, DecodeThreadVars *dtv, const Packet *p
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    Flow *pf = NULL; /* previous flow */
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    f = fb->head;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				    do {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if (FlowCompare(f, p) != 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        FLOWLOCK_WRLOCK(f);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if ((f->flags & (FLOW_TCP_REUSED|FLOW_TIMED_OUT)) == 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            uint32_t timeout = FlowGetFlowTimeout(f, SC_ATOMIC_GET(f->flow_state));
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            int32_t flow_times_out_at = (int32_t)(f->lastts.tv_sec + timeout);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            /* do the timeout check */
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            if (flow_times_out_at >= p->ts.tv_sec) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                if (FlowCompare(f, p) != 0) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                    if (unlikely(TcpSessionPacketSsnReuse(p, f, f->protoctx) == 1)) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        f = TcpReuseReplace(tv, dtv, fb, f, hash, p);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                        if (f == NULL) {
 | 
			
		
		
	
	
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
				
			
			 | 
			 | 
			
				@ -649,8 +649,8 @@ Flow *FlowGetFlowFromHash(ThreadVars *tv, DecodeThreadVars *dtv, const Packet *p
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				                f->flags |= FLOW_TIMED_OUT;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            FLOWLOCK_UNLOCK(f);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        }
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        FLOWLOCK_UNLOCK(f);
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				        if (f->hnext == NULL) {
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            pf = f;
 | 
			
		
		
	
		
			
				 | 
				 | 
			
			 | 
			 | 
			
				            f = pf->hnext = FlowGetNew(tv, dtv, p);
 | 
			
		
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
			
			 | 
			 | 
			
				
 
 |