Allow NULL parameters for start/stop functions

The functions that start and stop monitors and services now accept NULL
parameters.
This commit is contained in:
Markus Mäkelä
2017-05-02 11:08:56 +03:00
parent 60526f15b8
commit fce0edce8e
2 changed files with 53 additions and 44 deletions

View File

@ -164,6 +164,8 @@ monitor_free(MXS_MONITOR *mon)
void void
monitorStart(MXS_MONITOR *monitor, const MXS_CONFIG_PARAMETER* params) monitorStart(MXS_MONITOR *monitor, const MXS_CONFIG_PARAMETER* params)
{ {
if (monitor)
{
spinlock_acquire(&monitor->lock); spinlock_acquire(&monitor->lock);
if ((monitor->handle = (*monitor->module->startMonitor)(monitor, params))) if ((monitor->handle = (*monitor->module->startMonitor)(monitor, params)))
@ -176,6 +178,7 @@ monitorStart(MXS_MONITOR *monitor, const MXS_CONFIG_PARAMETER* params)
} }
spinlock_release(&monitor->lock); spinlock_release(&monitor->lock);
}
} }
/** /**
@ -203,6 +206,8 @@ void monitorStartAll()
void void
monitorStop(MXS_MONITOR *monitor) monitorStop(MXS_MONITOR *monitor)
{ {
if (monitor)
{
spinlock_acquire(&monitor->lock); spinlock_acquire(&monitor->lock);
/** Only stop the monitor if it is running */ /** Only stop the monitor if it is running */
@ -223,6 +228,7 @@ monitorStop(MXS_MONITOR *monitor)
} }
spinlock_release(&monitor->lock); spinlock_release(&monitor->lock);
}
} }
/** /**

View File

@ -627,11 +627,11 @@ int service_launch_all()
bool serviceStop(SERVICE *service) bool serviceStop(SERVICE *service)
{ {
SERV_LISTENER *port;
int listeners = 0; int listeners = 0;
port = service->ports; if (service)
while (port) {
for (SERV_LISTENER * port = service->ports; port; port = port->next)
{ {
if (port->listener && port->listener->session->state == SESSION_STATE_LISTENER) if (port->listener && port->listener->session->state == SESSION_STATE_LISTENER)
{ {
@ -641,9 +641,10 @@ bool serviceStop(SERVICE *service)
listeners++; listeners++;
} }
} }
port = port->next;
} }
service->state = SERVICE_STATE_STOPPED; service->state = SERVICE_STATE_STOPPED;
}
return listeners > 0; return listeners > 0;
} }
@ -658,11 +659,11 @@ bool serviceStop(SERVICE *service)
*/ */
bool serviceStart(SERVICE *service) bool serviceStart(SERVICE *service)
{ {
SERV_LISTENER *port;
int listeners = 0; int listeners = 0;
port = service->ports; if (service)
while (port) {
for (SERV_LISTENER* port = service->ports; port; port = port->next)
{ {
if (port->listener && port->listener->session->state == SESSION_STATE_LISTENER_STOPPED) if (port->listener && port->listener->session->state == SESSION_STATE_LISTENER_STOPPED)
{ {
@ -672,9 +673,11 @@ bool serviceStart(SERVICE *service)
listeners++; listeners++;
} }
} }
port = port->next;
} }
service->state = SERVICE_STATE_STARTED; service->state = SERVICE_STATE_STARTED;
}
return listeners > 0; return listeners > 0;
} }