diff --git a/userspace/libsinsp/sinsp.cpp b/userspace/libsinsp/sinsp.cpp index 86b722df41..7681e3f97a 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(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.