]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
flow/worker: minor refactor for app-layer callsite 8951/head
authorVictor Julien <vjulien@oisf.net>
Fri, 2 Jun 2023 09:08:29 +0000 (11:08 +0200)
committerVictor Julien <vjulien@oisf.net>
Fri, 2 Jun 2023 09:51:43 +0000 (11:51 +0200)
src/flow-worker.c

index 6a4440dc84a887bafd347465db97307f4f37dccf..99c45acda82e15058af1fbd121c6b6a7144acd0b 100644 (file)
@@ -552,24 +552,24 @@ static TmEcode FlowWorker(ThreadVars *tv, Packet *p, void *data)
     SCLogDebug("packet %"PRIu64" has flow? %s", p->pcap_cnt, p->flow ? "yes" : "no");
 
     /* handle TCP and app layer */
-    if (p->flow && PKT_IS_TCP(p)) {
-        SCLogDebug("packet %"PRIu64" is TCP. Direction %s", p->pcap_cnt, PKT_IS_TOSERVER(p) ? "TOSERVER" : "TOCLIENT");
-        DEBUG_ASSERT_FLOW_LOCKED(p->flow);
+    if (p->flow) {
+        if (PKT_IS_TCP(p)) {
+            SCLogDebug("packet %" PRIu64 " is TCP. Direction %s", p->pcap_cnt,
+                    PKT_IS_TOSERVER(p) ? "TOSERVER" : "TOCLIENT");
+            DEBUG_ASSERT_FLOW_LOCKED(p->flow);
 
-        /* if detect is disabled, we need to apply file flags to the flow
-         * here on the first packet. */
-        if (detect_thread == NULL &&
-                ((PKT_IS_TOSERVER(p) && (p->flowflags & FLOW_PKT_TOSERVER_FIRST)) ||
-                 (PKT_IS_TOCLIENT(p) && (p->flowflags & FLOW_PKT_TOCLIENT_FIRST))))
-        {
-            DisableDetectFlowFileFlags(p->flow);
-        }
+            /* if detect is disabled, we need to apply file flags to the flow
+             * here on the first packet. */
+            if (detect_thread == NULL &&
+                    ((PKT_IS_TOSERVER(p) && (p->flowflags & FLOW_PKT_TOSERVER_FIRST)) ||
+                            (PKT_IS_TOCLIENT(p) && (p->flowflags & FLOW_PKT_TOCLIENT_FIRST)))) {
+                DisableDetectFlowFileFlags(p->flow);
+            }
 
-        FlowWorkerStreamTCPUpdate(tv, fw, p, detect_thread, false);
+            FlowWorkerStreamTCPUpdate(tv, fw, p, detect_thread, false);
 
-        /* handle the app layer part of the UDP packet payload */
-    } else if (p->flow && p->proto == IPPROTO_UDP) {
-        if (!PacketCheckAction(p, ACTION_DROP)) {
+            /* handle the app layer part of the UDP packet payload */
+        } else if (p->proto == IPPROTO_UDP && !PacketCheckAction(p, ACTION_DROP)) {
             FLOWWORKER_PROFILING_START(p, PROFILE_FLOWWORKER_APPLAYERUDP);
             AppLayerHandleUdp(tv, fw->stream_thread->ra_ctx->app_tctx, p, p->flow);
             FLOWWORKER_PROFILING_END(p, PROFILE_FLOWWORKER_APPLAYERUDP);