Monitors are now started after they have been fully configured.
This commit is contained in:
Markus Makela
2015-11-04 11:50:21 +02:00
parent b6783c24d0
commit cd6f7ce046
4 changed files with 68 additions and 10 deletions

View File

@ -118,6 +118,7 @@ MONITOR *ptr;
ptr->next = mon->next;
}
spinlock_release(&monLock);
free_config_parameter(mon->parameters);
free(mon->name);
free(mon);
}
@ -137,6 +138,23 @@ monitorStart(MONITOR *monitor, void* params)
spinlock_release(&monitor->lock);
}
/**
* Start all monitors
*/
void monitorStartAll()
{
MONITOR *ptr;
spinlock_acquire(&monLock);
ptr = allMonitors;
while (ptr)
{
monitorStart(ptr, ptr->parameters);
ptr = ptr->next;
}
spinlock_release(&monLock);
}
/**
* Stop a given monitor
*
@ -522,3 +540,22 @@ bool check_monitor_permissions(MONITOR* monitor)
free(dpasswd);
return rval;
}
/**
* Add parameters to the monitor
* @param monitor Monitor
* @param params Config parameters
*/
void monitorAddParameters(MONITOR *monitor, CONFIG_PARAMETER *params)
{
while (params)
{
CONFIG_PARAMETER* clone = config_clone_param(params);
if (clone)
{
clone->next = monitor->parameters;
monitor->parameters = clone;
}
params = params->next;
}
}