From: Gunnar Beutner Date: Thu, 21 Aug 2014 07:36:05 +0000 (+0200) Subject: Revert "Use threads for external commands" X-Git-Tag: v2.1.0~33 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=80762a0360f0d77763f3a0fd3b5e8814460e9f6d;p=icinga2 Revert "Use threads for external commands" This reverts commit e1b8b05ef3034ede65fb84141a5a3a908304ddd5. --- diff --git a/components/compat/externalcommandlistener.cpp b/components/compat/externalcommandlistener.cpp index f93610955..a4f76a4d9 100644 --- a/components/compat/externalcommandlistener.cpp +++ b/components/compat/externalcommandlistener.cpp @@ -113,8 +113,6 @@ void ExternalCommandListener::CommandPipeThread(const String& commandPath) FILE *fp = fdopen(fd, "r"); if (fp == NULL) { - (void) close(fd); - std::ostringstream msgbuf; msgbuf << "fdopen() for fifo path '" << commandPath << "' failed with error code " << errno << ", \"" << Utility::FormatErrorNumber(errno) << "\""; Log(LogCritical, "ExternalCommandListener", msgbuf.str()); @@ -130,24 +128,21 @@ void ExternalCommandListener::CommandPipeThread(const String& commandPath) (line[strlen(line) - 1] == '\r' || line[strlen(line) - 1] == '\n')) line[strlen(line) - 1] = '\0'; - Utility::QueueAsyncCallback(boost::bind(&ExternalCommandListener::ExecuteCommand, line)); + String command = line; + + try { + Log(LogInformation, "ExternalCommandListener", "Executing external command: " + command); + + ExternalCommandProcessor::Execute(command); + } catch (const std::exception&) { + std::ostringstream msgbuf; + msgbuf << "External command failed."; + Log(LogWarning, "ExternalCommandListener", msgbuf.str()); + } } delete line; fclose(fp); } } - -void ExternalCommandListener::ExecuteCommand(const String& command) -{ - try { - Log(LogInformation, "ExternalCommandListener", "Executing external command: " + command); - - ExternalCommandProcessor::Execute(command); - } catch (const std::exception&) { - std::ostringstream msgbuf; - msgbuf << "External command failed: " << command; - Log(LogWarning, "ExternalCommandListener", msgbuf.str()); - } -} #endif /* _WIN32 */ diff --git a/components/compat/externalcommandlistener.hpp b/components/compat/externalcommandlistener.hpp index 342a3d2b7..0006aec33 100644 --- a/components/compat/externalcommandlistener.hpp +++ b/components/compat/externalcommandlistener.hpp @@ -49,7 +49,6 @@ private: boost::thread m_CommandThread; void CommandPipeThread(const String& commandPath); - static void ExecuteCommand(const String& command); #endif /* _WIN32 */ };