checker: Fix incorrect wait time when first service is non-authoritative.

This commit is contained in:
Gunnar Beutner 2013-09-12 16:36:18 +02:00
parent eb7d9e96f8
commit cbc53db5c1

View File

@ -83,6 +83,12 @@ void CheckerComponent::CheckThreadProc(void)
CheckTimeView::iterator it = idx.begin(); CheckTimeView::iterator it = idx.begin();
Service::Ptr service = *it; Service::Ptr service = *it;
if (!service->HasAuthority("checker")) {
idx.erase(it);
idx.insert(service);
continue;
}
if (!service->IsActive()) { if (!service->IsActive()) {
idx.erase(it); idx.erase(it);
continue; continue;
@ -90,11 +96,6 @@ void CheckerComponent::CheckThreadProc(void)
double wait = service->GetNextCheck() - Utility::GetTime(); double wait = service->GetNextCheck() - Utility::GetTime();
bool authoritative = service->HasAuthority("checker");
if (!authoritative)
wait = 60;
if (wait > 0) { if (wait > 0) {
/* Make sure the service we just examined can be destroyed while we're waiting. */ /* Make sure the service we just examined can be destroyed while we're waiting. */
service.reset(); service.reset();
@ -110,6 +111,7 @@ void CheckerComponent::CheckThreadProc(void)
bool forced = service->GetForceNextCheck(); bool forced = service->GetForceNextCheck();
bool check = true; bool check = true;
bool authoritative = service->HasAuthority("checker");
if (!forced) { if (!forced) {
if (!service->GetEnableActiveChecks()) { if (!service->GetEnableActiveChecks()) {