diff --git a/components/compat/externalcommandlistener.cpp b/components/compat/externalcommandlistener.cpp index 64ec44dfa..fe25bc4c3 100644 --- a/components/compat/externalcommandlistener.cpp +++ b/components/compat/externalcommandlistener.cpp @@ -111,9 +111,7 @@ void ExternalCommandListener::CommandPipeThread(const String& commandPath) return; } - - - Log(LogNotice, "ExternalCommandListener", "Client connected"); + Log(LogDebug, "ExternalCommandListener", "Client connected"); Utility::QueueAsyncCallback(boost::bind(&ExternalCommandListener::ClientHandler, this, commandPath, fd)); } catch (std::exception&) { Log(LogCritical, "ExternalCommandListener", "Cannot accept new connection."); @@ -144,6 +142,19 @@ void ExternalCommandListener::ClientHandler(const String& commandPath, int fd) String command = line; + if (command.IsEmpty()) { + fclose(fp); + return; + } + + /* check if line contains [$unixts] */ + if (line[0] != '[' || line[11] != ']') { + Log(LogDebug, "ExternalCommandListener", "Cannot find timestamp prefix in external command '" + command + "'. Bailing out."); + delete line; + fclose(fp); + return; + } + try { Log(LogInformation, "ExternalCommandListener", "Executing external command: " + command); @@ -152,7 +163,6 @@ void ExternalCommandListener::ClientHandler(const String& commandPath, int fd) std::ostringstream msgbuf; msgbuf << "External command failed."; Log(LogWarning, "ExternalCommandListener", msgbuf.str()); - return; } delete line; diff --git a/tools/scripts/process_check_result b/tools/scripts/process_check_result index 6d01ace0c..c329c0554 100755 --- a/tools/scripts/process_check_result +++ b/tools/scripts/process_check_result @@ -89,6 +89,6 @@ else fi echo "Sending '$ECHO $CMDLINE >> $CMDFILE'" -`$ECHO $CMDLINE >> $CMDFILE` +`$ECHO "$CMDLINE" >> $CMDFILE` exit 0