From: Shivani Bhardwaj Date: Thu, 13 Jun 2024 13:03:30 +0000 (+0530) Subject: flow: use bool wherever possible X-Git-Tag: suricata-8.0.0-beta1~1123 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=87fa7f10ef2b7194eb3e854ac7671e52033041da;p=thirdparty%2Fsuricata.git flow: use bool wherever possible --- diff --git a/src/flow-manager.c b/src/flow-manager.c index b81b2dd9ff..92eeea6b4a 100644 --- a/src/flow-manager.c +++ b/src/flow-manager.c @@ -175,10 +175,10 @@ again: * \param f flow * \param ts timestamp * - * \retval 0 not timed out - * \retval 1 timed out + * \retval false not timed out + * \retval true timed out */ -static int FlowManagerFlowTimeout(Flow *f, SCTime_t ts, uint32_t *next_ts, const bool emerg) +static bool FlowManagerFlowTimeout(Flow *f, SCTime_t ts, uint32_t *next_ts, const bool emerg) { uint32_t flow_times_out_at = f->timeout_at; if (emerg) { @@ -190,10 +190,10 @@ static int FlowManagerFlowTimeout(Flow *f, SCTime_t ts, uint32_t *next_ts, const /* do the timeout check */ if ((uint64_t)flow_times_out_at >= SCTIME_SECS(ts)) { - return 0; + return false; } - return 1; + return true; } /** \internal @@ -203,14 +203,14 @@ static int FlowManagerFlowTimeout(Flow *f, SCTime_t ts, uint32_t *next_ts, const * \param ts timestamp * \param counters Flow timeout counters * - * \retval 0 not timeout - * \retval 1 timeout (or not capture bypassed) + * \retval false not timeout + * \retval true timeout (or not capture bypassed) */ -static inline int FlowBypassedTimeout(Flow *f, SCTime_t ts, FlowTimeoutCounters *counters) +static inline bool FlowBypassedTimeout(Flow *f, SCTime_t ts, FlowTimeoutCounters *counters) { #ifdef CAPTURE_OFFLOAD if (f->flow_state != FLOW_STATE_CAPTURE_BYPASSED) { - return 1; + return true; } FlowBypassInfo *fc = FlowGetStorageById(f, GetFlowBypassInfoID()); @@ -233,22 +233,20 @@ static inline int FlowBypassedTimeout(Flow *f, SCTime_t ts, FlowTimeoutCounters } counters->bypassed_pkts += pkts_tosrc + pkts_todst; counters->bypassed_bytes += bytes_tosrc + bytes_todst; - return 0; - } else { - SCLogDebug("No new packet, dead flow %"PRId64"", FlowGetId(f)); - if (f->livedev) { - if (FLOW_IS_IPV4(f)) { - LiveDevSubBypassStats(f->livedev, 1, AF_INET); - } else if (FLOW_IS_IPV6(f)) { - LiveDevSubBypassStats(f->livedev, 1, AF_INET6); - } + return false; + } + SCLogDebug("No new packet, dead flow %" PRId64 "", FlowGetId(f)); + if (f->livedev) { + if (FLOW_IS_IPV4(f)) { + LiveDevSubBypassStats(f->livedev, 1, AF_INET); + } else if (FLOW_IS_IPV6(f)) { + LiveDevSubBypassStats(f->livedev, 1, AF_INET6); } - counters->bypassed_count++; - return 1; } + counters->bypassed_count++; } #endif /* CAPTURE_OFFLOAD */ - return 1; + return true; } typedef struct FlowManagerTimeoutThread { @@ -269,7 +267,7 @@ static uint32_t ProcessAsideQueue(FlowManagerTimeoutThread *td, FlowTimeoutCount if (f->proto == IPPROTO_TCP && !(f->flags & (FLOW_TIMEOUT_REASSEMBLY_DONE | FLOW_ACTION_DROP)) && - !FlowIsBypassed(f) && FlowForceReassemblyNeedReassembly(f) == 1) { + !FlowIsBypassed(f) && FlowForceReassemblyNeedReassembly(f)) { /* Send the flow to its thread */ FlowForceReassemblyForFlow(f); FLOWLOCK_UNLOCK(f); @@ -319,8 +317,7 @@ static void FlowManagerHashRowTimeout(FlowManagerTimeoutThread *td, Flow *f, SCT * be modified when we have both the flow and hash row lock */ /* timeout logic goes here */ - if (FlowManagerFlowTimeout(f, ts, next_ts, emergency) == 0) { - + if (FlowManagerFlowTimeout(f, ts, next_ts, emergency) == false) { counters->flows_notimeout++; prev_f = f; diff --git a/src/flow-timeout.c b/src/flow-timeout.c index 5c75e242cb..01d60fe251 100644 --- a/src/flow-timeout.c +++ b/src/flow-timeout.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2017 Open Information Security Foundation +/* Copyright (C) 2007-2024 Open Information Security Foundation * * You can copy, redistribute or modify this Program under the terms of * the GNU General Public License version 2 as published by the Free @@ -281,14 +281,14 @@ Packet *FlowForceReassemblyPseudoPacketGet(int direction, Flow *f, const TcpSess * * \param f *LOCKED* flow * - * \retval 0 no - * \retval 1 yes + * \retval false no + * \retval true yes */ -int FlowForceReassemblyNeedReassembly(Flow *f) +bool FlowForceReassemblyNeedReassembly(Flow *f) { if (f == NULL || f->protoctx == NULL) { - SCReturnInt(0); + return false; } TcpSession *ssn = (TcpSession *)f->protoctx; @@ -320,12 +320,12 @@ int FlowForceReassemblyNeedReassembly(Flow *f) /* nothing to do */ if (client == STREAM_HAS_UNPROCESSED_SEGMENTS_NONE && server == STREAM_HAS_UNPROCESSED_SEGMENTS_NONE) { - SCReturnInt(0); + return false; } f->ffr_ts = client; f->ffr_tc = server; - SCReturnInt(1); + return true; } /** @@ -392,7 +392,7 @@ static inline void FlowForceReassemblyForHash(void) /* in case of additional work, we pull the flow out of the * hash and xfer ownership to the injected packet(s) */ - if (FlowForceReassemblyNeedReassembly(f) == 1) { + if (FlowForceReassemblyNeedReassembly(f)) { RemoveFromHash(f, prev_f); f->flow_end_flags |= FLOW_END_FLAG_SHUTDOWN; FlowForceReassemblyForFlow(f); diff --git a/src/flow-timeout.h b/src/flow-timeout.h index 7ca895e728..467fd821cd 100644 --- a/src/flow-timeout.h +++ b/src/flow-timeout.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2007-2012 Open Information Security Foundation +/* Copyright (C) 2007-2024 Open Information Security Foundation * * You can copy, redistribute or modify this Program under the terms of * the GNU General Public License version 2 as published by the Free @@ -27,7 +27,7 @@ #include "stream-tcp-private.h" void FlowForceReassemblyForFlow(Flow *f); -int FlowForceReassemblyNeedReassembly(Flow *f); +bool FlowForceReassemblyNeedReassembly(Flow *f); void FlowForceReassembly(void); Packet *FlowForceReassemblyPseudoPacketGet(int direction, Flow *f, const TcpSession *ssn); diff --git a/src/flow-worker.c b/src/flow-worker.c index 3efb290da4..1983111a1b 100644 --- a/src/flow-worker.c +++ b/src/flow-worker.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2016-2020 Open Information Security Foundation +/* Copyright (C) 2016-2024 Open Information Security Foundation * * You can copy, redistribute or modify this Program under the terms of * the GNU General Public License version 2 as published by the Free @@ -166,8 +166,7 @@ static void CheckWorkQueue(ThreadVars *tv, FlowWorkerThreadData *fw, FlowTimeout if (f->proto == IPPROTO_TCP) { if (!(f->flags & (FLOW_TIMEOUT_REASSEMBLY_DONE | FLOW_ACTION_DROP)) && - !FlowIsBypassed(f) && FlowForceReassemblyNeedReassembly(f) == 1 && - f->ffr != 0) { + !FlowIsBypassed(f) && FlowForceReassemblyNeedReassembly(f) && f->ffr != 0) { /* read detect thread in case we're doing a reload */ void *detect_thread = SC_ATOMIC_GET(fw->detect_thread); int cnt = FlowFinish(tv, f, fw, detect_thread);