Add try catch for ExecuteEventHandler

This commit is contained in:
Mattia Codato 2020-07-23 13:03:30 +02:00
parent 14c02ec654
commit b30960fda5
1 changed files with 12 additions and 1 deletions

View File

@ -295,7 +295,18 @@ void ClusterEvents::ExecuteCheckFromQueue(const MessageOrigin::Ptr& origin, cons
Log(LogCritical, "checker", output);
}
} else if (command_type == "event_command") {
try {
host->ExecuteEventHandler(macros, true);
} catch (const std::exception& ex) {
if (params->Contains("source")) {
String output = "Exception occurred while executing event command '" + command + "' for '" +
host->GetName() + "': " + DiagnosticInformation(ex);
double now = Utility::GetTime();
ServiceState state = ServiceUnknown;
SendEventExecuteCommand(params, state, output, now, now, listener, origin, sourceEndpoint);
}
}
} else if (command_type == "notification_command") {
/* Get user */
User::Ptr user = new User();