From 2b444d47f7d06e4ee553c8a23750072989b9d9b6 Mon Sep 17 00:00:00 2001 From: "Oleksii Shumeiko -X (oshumeik - SOFTSERVE INC at Cisco)" Date: Tue, 24 Sep 2024 15:00:27 +0000 Subject: [PATCH] Pull request #4457: Extractor: flush data Merge in SNORT/snort3 from ~OSHUMEIK/snort3:extr_flush to master Squashed commit of the following: commit f454e0e1f24ebffafc4a62b00d906c7bc4511f98 Author: Oleksii Shumeiko Date: Tue Sep 24 11:58:19 2024 +0300 extractor: flush data on unlocking a writer --- src/network_inspectors/extractor/extractor_writer.cc | 11 +++++++++++ src/network_inspectors/extractor/extractor_writer.h | 8 ++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/network_inspectors/extractor/extractor_writer.cc b/src/network_inspectors/extractor/extractor_writer.cc index 2e642f29b..4f9da48c9 100644 --- a/src/network_inspectors/extractor/extractor_writer.cc +++ b/src/network_inspectors/extractor/extractor_writer.cc @@ -60,6 +60,17 @@ void StdExtractorWriter::write(uint64_t n) TextLog_Print(extr_std_log, STDu64, n); } +void StdExtractorWriter::lock() +{ + write_mutex.lock(); +} + +void StdExtractorWriter::unlock() +{ + TextLog_Flush(extr_std_log); // FIXIT-L: should be a part of API and have a well-defined point in the pipeline + write_mutex.unlock(); +} + #ifdef UNIT_TEST #include "catch/snort_catch.h" diff --git a/src/network_inspectors/extractor/extractor_writer.h b/src/network_inspectors/extractor/extractor_writer.h index d2abfac0d..6b234b19a 100644 --- a/src/network_inspectors/extractor/extractor_writer.h +++ b/src/network_inspectors/extractor/extractor_writer.h @@ -88,12 +88,8 @@ public: void write(const char* ss) override; void write(const char* ss, size_t len) override; void write(uint64_t n) override; - - void lock() override - { write_mutex.lock(); } - - void unlock() override - { write_mutex.unlock(); } + void lock() override; + void unlock() override; private: std::mutex write_mutex; -- 2.47.3