/** * Restart a service * @param dcb Client DCB * @param tree Parse tree */ void exec_restart_service(DCB *dcb, MAXINFO_TREE *tree) { char errmsg[120]; if (tree && tree->value) { SERVICE* service = service_find(tree->value); if (service) { serviceRestart(service); maxinfo_send_ok(dcb); } else { if (strlen(tree->value) > 80) // Prevent buffer overrun { tree->value[80] = 0; } sprintf(errmsg, "Invalid argument '%s'", tree->value); maxinfo_send_error(dcb, 0, errmsg); } } else { sprintf(errmsg, "Missing argument for 'RESTART SERVICE'"); maxinfo_send_error(dcb, 0, errmsg); } }
/** * Debug command to restart a stopped service * * @param dcb The DCB to print any output to * @param service The service to restart */ static void restart_service(DCB *dcb, SERVICE *service) { serviceRestart(service); }