From 5e8b4280bc7a7f99cc6474e981bd1283a721349f Mon Sep 17 00:00:00 2001 From: "Alexander A. Klimov" Date: Fri, 5 Apr 2019 17:41:39 +0200 Subject: [PATCH] New event queue: handle empty filter --- lib/remote/eventqueue.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/lib/remote/eventqueue.cpp b/lib/remote/eventqueue.cpp index 83c7c6fc1..f4ede0426 100644 --- a/lib/remote/eventqueue.cpp +++ b/lib/remote/eventqueue.cpp @@ -145,7 +145,7 @@ EventQueueRegistry *EventQueueRegistry::GetInstance() } std::mutex EventsInbox::m_FiltersMutex; -std::map EventsInbox::m_Filters; +std::map EventsInbox::m_Filters ({{"", EventsInbox::Filter{1, nullptr}}}); EventsRouter EventsRouter::m_Instance; @@ -262,17 +262,19 @@ EventsFilter::operator bool() void EventsFilter::Push(Dictionary::Ptr event) { for (auto& perFilter : m_Inboxes) { - ScriptFrame frame(true); - frame.Sandboxed = true; + if (perFilter.first) { + ScriptFrame frame(true); + frame.Sandboxed = true; - try { - if (!FilterUtility::EvaluateFilter(frame, perFilter.first.get(), event, "event")) { + try { + if (!FilterUtility::EvaluateFilter(frame, perFilter.first.get(), event, "event")) { + continue; + } + } catch (const std::exception& ex) { + Log(LogWarning, "EventQueue") + << "Error occurred while evaluating event filter for queue: " << DiagnosticInformation(ex); continue; } - } catch (const std::exception& ex) { - Log(LogWarning, "EventQueue") - << "Error occurred while evaluating event filter for queue: " << DiagnosticInformation(ex); - continue; } for (auto& inbox : perFilter.second) { -- 2.40.0