From ddce334359eb69ae4cc51111a23cb6bcd6f09215 Mon Sep 17 00:00:00 2001 From: Roberto Scolaro Date: Fri, 26 Jul 2024 14:00:54 +0000 Subject: [PATCH 1/3] fix(libsinsp): add function to set compiler filter and filter string Signed-off-by: Roberto Scolaro --- userspace/libsinsp/sinsp.cpp | 7 +++++++ userspace/libsinsp/sinsp.h | 11 +++++++++++ 2 files changed, 18 insertions(+) diff --git a/userspace/libsinsp/sinsp.cpp b/userspace/libsinsp/sinsp.cpp index 86b722df41..b7e7d76026 100644 --- a/userspace/libsinsp/sinsp.cpp +++ b/userspace/libsinsp/sinsp.cpp @@ -1686,6 +1686,13 @@ void sinsp::set_filter(const std::string& filter) m_internal_flt_ast = compiler.get_filter_ast(); } +void sinsp::set_filter(const std::string& filterstring, std::unique_ptr filter) +{ + set_filter(std::move(filter)); + m_filterstring = filterstring; +} + + std::string sinsp::get_filter() const { return m_filterstring; diff --git a/userspace/libsinsp/sinsp.h b/userspace/libsinsp/sinsp.h index a709cc44a2..52dde9674e 100644 --- a/userspace/libsinsp/sinsp.h +++ b/userspace/libsinsp/sinsp.h @@ -305,6 +305,17 @@ class SINSP_PUBLIC sinsp : public capture_stats_source */ void set_filter(std::unique_ptr filter); + /*! + \brief Installs the given capture runtime filter object and accordingly + sets the filter string. + + \param filter the filter string. Refer to the filtering language + section for information about the filtering + syntax. + \param filter the runtime filter object + */ + void set_filter(const std::string& filterstring, std::unique_ptr filter); + /*! \brief Return the filter set for this capture. From f5c20e4e4d73d34cdec20ed0b7760420cee34429 Mon Sep 17 00:00:00 2001 From: Roberto Scolaro Date: Mon, 5 Aug 2024 15:50:57 +0000 Subject: [PATCH 2/3] refactor(libsinsp): set filterstring optionally Signed-off-by: Roberto Scolaro --- userspace/libsinsp/sinsp.cpp | 10 ++-------- userspace/libsinsp/sinsp.h | 13 +------------ 2 files changed, 3 insertions(+), 20 deletions(-) diff --git a/userspace/libsinsp/sinsp.cpp b/userspace/libsinsp/sinsp.cpp index b7e7d76026..c3d5a1f4ec 100644 --- a/userspace/libsinsp/sinsp.cpp +++ b/userspace/libsinsp/sinsp.cpp @@ -1661,7 +1661,7 @@ void sinsp::start_dropping_mode(uint32_t sampling_ratio) } #endif // _WIN32 -void sinsp::set_filter(std::unique_ptr filter) +void sinsp::set_filter(std::unique_ptr filter, const std::optional& filterstring) { if(m_filter != NULL) { @@ -1670,6 +1670,7 @@ void sinsp::set_filter(std::unique_ptr filter) } m_filter = std::move(filter); + m_filterstring = filterstring.value_or(""); } void sinsp::set_filter(const std::string& filter) @@ -1686,13 +1687,6 @@ void sinsp::set_filter(const std::string& filter) m_internal_flt_ast = compiler.get_filter_ast(); } -void sinsp::set_filter(const std::string& filterstring, std::unique_ptr filter) -{ - set_filter(std::move(filter)); - m_filterstring = filterstring; -} - - std::string sinsp::get_filter() const { return m_filterstring; diff --git a/userspace/libsinsp/sinsp.h b/userspace/libsinsp/sinsp.h index 52dde9674e..33e92ce37e 100644 --- a/userspace/libsinsp/sinsp.h +++ b/userspace/libsinsp/sinsp.h @@ -303,18 +303,7 @@ class SINSP_PUBLIC sinsp : public capture_stats_source \param filter the runtime filter object */ - void set_filter(std::unique_ptr filter); - - /*! - \brief Installs the given capture runtime filter object and accordingly - sets the filter string. - - \param filter the filter string. Refer to the filtering language - section for information about the filtering - syntax. - \param filter the runtime filter object - */ - void set_filter(const std::string& filterstring, std::unique_ptr filter); + void set_filter(std::unique_ptr filter, const std::optional& filterstring); /*! \brief Return the filter set for this capture. From 8bc17ef7200b63e2cba026b43b422affcd4b2396 Mon Sep 17 00:00:00 2001 From: Roberto Scolaro Date: Tue, 6 Aug 2024 10:37:24 +0000 Subject: [PATCH 3/3] fix(libsinsp): address review comments Signed-off-by: Roberto Scolaro --- userspace/libsinsp/sinsp.cpp | 4 ++-- userspace/libsinsp/sinsp.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/userspace/libsinsp/sinsp.cpp b/userspace/libsinsp/sinsp.cpp index c3d5a1f4ec..00819ae4ab 100644 --- a/userspace/libsinsp/sinsp.cpp +++ b/userspace/libsinsp/sinsp.cpp @@ -1661,7 +1661,7 @@ void sinsp::start_dropping_mode(uint32_t sampling_ratio) } #endif // _WIN32 -void sinsp::set_filter(std::unique_ptr filter, const std::optional& filterstring) +void sinsp::set_filter(std::unique_ptr filter, const std::string& filterstring) { if(m_filter != NULL) { @@ -1670,7 +1670,7 @@ void sinsp::set_filter(std::unique_ptr filter, const std::optional } m_filter = std::move(filter); - m_filterstring = filterstring.value_or(""); + m_filterstring = filterstring; } void sinsp::set_filter(const std::string& filter) diff --git a/userspace/libsinsp/sinsp.h b/userspace/libsinsp/sinsp.h index 33e92ce37e..d67cb4bb1f 100644 --- a/userspace/libsinsp/sinsp.h +++ b/userspace/libsinsp/sinsp.h @@ -303,7 +303,7 @@ class SINSP_PUBLIC sinsp : public capture_stats_source \param filter the runtime filter object */ - void set_filter(std::unique_ptr filter, const std::optional& filterstring); + void set_filter(std::unique_ptr filter, const std::string& filterstring = ""); /*! \brief Return the filter set for this capture.