]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
flow/tcp: consider pkts established based on 3whs
authorVictor Julien <victor@inliniac.net>
Wed, 25 Mar 2020 14:07:39 +0000 (15:07 +0100)
committerVictor Julien <victor@inliniac.net>
Mon, 27 Jul 2020 15:07:21 +0000 (17:07 +0200)
src/flow.c

index ad0001441ec681abc7d64d35dd404613bf39c847..ca42f73be066c3ac8979915c47a39c2e5779b343 100644 (file)
@@ -475,14 +475,17 @@ void FlowHandlePacketUpdate(Flow *f, Packet *p)
         SCLogDebug("pkt %p FLOW_PKT_ESTABLISHED", p);
         p->flowflags |= FLOW_PKT_ESTABLISHED;
 
+    } else if (f->proto == IPPROTO_TCP) {
+        TcpSession *ssn = (TcpSession *)f->protoctx;
+        if (ssn != NULL && ssn->state >= TCP_ESTABLISHED) {
+            p->flowflags |= FLOW_PKT_ESTABLISHED;
+        }
     } else if ((f->flags & (FLOW_TO_DST_SEEN|FLOW_TO_SRC_SEEN)) ==
             (FLOW_TO_DST_SEEN|FLOW_TO_SRC_SEEN)) {
         SCLogDebug("pkt %p FLOW_PKT_ESTABLISHED", p);
         p->flowflags |= FLOW_PKT_ESTABLISHED;
 
-        if (f->proto != IPPROTO_TCP) {
-            FlowUpdateState(f, FLOW_STATE_ESTABLISHED);
-        }
+        FlowUpdateState(f, FLOW_STATE_ESTABLISHED);
     }
 
     /*set the detection bypass flags*/