macroDicts.push_back(IcingaApplication::GetInstance()->GetMacros());
string command = MacroProcessor::ResolveMacros(checkCommand, macroDicts);
- CheckResult result;
+ Process::Ptr process = boost::make_shared<Process>(command);
+
+ NagiosCheckTask ct(task, process);
time_t now;
time(&now);
- result.SetScheduleStart(now);
+ ct.m_Result.SetScheduleStart(now);
- Process::Ptr process = boost::make_shared<Process>(command);
-
- NagiosCheckTask ct(task, process);
- process->Start(boost::bind(&NagiosCheckTask::ProcessFinishedHandler, ct, result));
+ process->Start(boost::bind(&NagiosCheckTask::ProcessFinishedHandler, ct));
}
-void NagiosCheckTask::ProcessFinishedHandler(NagiosCheckTask ct, CheckResult result)
+void NagiosCheckTask::ProcessFinishedHandler(NagiosCheckTask ct)
{
ProcessResult pr;
return;
}
- result.SetExecutionStart(pr.ExecutionStart);
- result.SetExecutionEnd(pr.ExecutionEnd);
+ ct.m_Result.SetExecutionStart(pr.ExecutionStart);
+ ct.m_Result.SetExecutionEnd(pr.ExecutionEnd);
string output = pr.Output;
boost::algorithm::trim(output);
- ProcessCheckOutput(result, output);
+ ProcessCheckOutput(ct.m_Result, output);
ServiceState state;
break;
}
- result.SetState(state);
+ ct.m_Result.SetState(state);
time_t now;
time(&now);
- result.SetScheduleEnd(now);
+ ct.m_Result.SetScheduleEnd(now);
- ct.m_Task->FinishResult(result.GetDictionary());
+ ct.m_Task->FinishResult(ct.m_Result.GetDictionary());
}
void NagiosCheckTask::ProcessCheckOutput(CheckResult& result, const string& output)
static void Register(void);
private:
- static void ProcessFinishedHandler(NagiosCheckTask ct, CheckResult result);
+ static void ProcessFinishedHandler(NagiosCheckTask ct);
static void ProcessCheckOutput(CheckResult& result, const string& output);
NagiosCheckTask(const ScriptTask::Ptr& task, const Process::Ptr& process);
ScriptTask::Ptr m_Task;
Process::Ptr m_Process;
+ CheckResult m_Result;
};
}