From: Victor Julien Date: Fri, 10 Jun 2022 19:07:15 +0000 (+0200) Subject: flowbits: toggle returns state of the bit X-Git-Tag: suricata-8.0.0-beta1~87 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2921d07b1b8a1f33ba2844b6a46278734f7ffc29;p=thirdparty%2Fsuricata.git flowbits: toggle returns state of the bit --- diff --git a/src/flow-bit.c b/src/flow-bit.c index f59e7eae94..304e6bd415 100644 --- a/src/flow-bit.c +++ b/src/flow-bit.c @@ -91,13 +91,18 @@ void FlowBitUnset(Flow *f, uint32_t idx) FlowBitRemove(f, idx); } -void FlowBitToggle(Flow *f, uint32_t idx) +/** + * \retval bool true if bit is set, false is unset + */ +bool FlowBitToggle(Flow *f, uint32_t idx) { FlowBit *fb = FlowBitGet(f, idx); if (fb != NULL) { FlowBitRemove(f, idx); + return false; } else { FlowBitAdd(f, idx); + return true; } } diff --git a/src/flow-bit.h b/src/flow-bit.h index e7fb3f9ecc..c98fa585cd 100644 --- a/src/flow-bit.h +++ b/src/flow-bit.h @@ -41,7 +41,7 @@ void FlowBitRegisterTests(void); void FlowBitSet(Flow *, uint32_t); void FlowBitUnset(Flow *, uint32_t); -void FlowBitToggle(Flow *, uint32_t); +bool FlowBitToggle(Flow *, uint32_t); int FlowBitIsset(Flow *, uint32_t); int FlowBitIsnotset(Flow *, uint32_t); #endif /* SURICATA_FLOW_BIT_H */