diff --git a/userspace/libsinsp/sinsp.cpp b/userspace/libsinsp/sinsp.cpp index b5ac697fbd..0b7d46610f 100644 --- a/userspace/libsinsp/sinsp.cpp +++ b/userspace/libsinsp/sinsp.cpp @@ -403,7 +403,10 @@ void sinsp::open_common(scap_open_args* oargs, const scap_vtable* vtable, scap_p // notify registered plugins of capture open for (auto& p : m_plugin_manager->plugins()) { - p->capture_open(); + if (p->caps() & CAP_CAPTURE_LISTENING) + { + p->capture_open(); + } } } @@ -805,9 +808,15 @@ void sinsp::close() } // notify registered plugins of capture close - for (auto& p : m_plugin_manager->plugins()) + if (m_mode != SINSP_MODE_NONE) { - p->capture_close(); + for (auto& p : m_plugin_manager->plugins()) + { + if (p->caps() & CAP_CAPTURE_LISTENING) + { + p->capture_close(); + } + } } // purge pending routines and wait for the running ones