for (i = 0; settings[i].name; i++) _ftprintf(stderr, _T("%s\n"), settings[i].name);\r
return 1;\r
}\r
- if (argc < mandatory) return usage(1);\r
\r
additional = 0;\r
if (additional_mandatory) {\r
+ if (argc < mandatory) {\r
+ print_message(stderr, NSSM_MESSAGE_MISSING_SUBPARAMETER, parameter);\r
+ return 1;\r
+ }\r
additional = argv[3];\r
remainder = 4;\r
}\r
- else additional = argv[remainder];\r
+ else {\r
+ additional = argv[remainder];\r
+ if (argc < mandatory) return usage(1);\r
+ }\r
}\r
\r
nssm_service_t *service = alloc_nssm_service();\r
int ret;\r
unsigned long error;\r
SERVICE_STATUS service_status;\r
- if (control == 0) {\r
+ if (control == NSSM_SERVICE_CONTROL_START) {\r
ret = StartService(service_handle, (unsigned long) argc, (const TCHAR **) argv);\r
error = GetLastError();\r
CloseHandle(service_handle);\r
TCHAR *service_control_text(unsigned long control) {\r
switch (control) {\r
/* HACK: there is no SERVICE_CONTROL_START constant */\r
- case 0: return _T("START");\r
+ case NSSM_SERVICE_CONTROL_START: return _T("START");\r
case SERVICE_CONTROL_STOP: return _T("STOP");\r
case SERVICE_CONTROL_SHUTDOWN: return _T("SHUTDOWN");\r
case SERVICE_CONTROL_PAUSE: return _T("PAUSE");\r
case SERVICE_CONTROL_CONTINUE: return _T("CONTINUE");\r
case SERVICE_CONTROL_INTERROGATE: return _T("INTERROGATE");\r
+ case NSSM_SERVICE_CONTROL_ROTATE: return _T("ROTATE");\r
+ default: return 0;\r
+ }\r
+}\r
+\r
+TCHAR *service_status_text(unsigned long status) {\r
+ switch (status) {\r
+ case SERVICE_STOPPED: return _T("SERVICE_STOPPED");\r
+ case SERVICE_START_PENDING: return _T("SERVICE_START_PENDING");\r
+ case SERVICE_STOP_PENDING: return _T("SERVICE_STOP_PENDING");\r
+ case SERVICE_RUNNING: return _T("SERVICE_RUNNING");\r
+ case SERVICE_CONTINUE_PENDING: return _T("SERVICE_CONTINUE_PENDING");\r
+ case SERVICE_PAUSE_PENDING: return _T("SERVICE_PAUSE_PENDING");\r
+ case SERVICE_PAUSED: return _T("SERVICE_PAUSED");\r
default: return 0;\r
}\r
}\r
*/\r
log_service_control(service->name, control, false);\r
return ERROR_CALL_NOT_IMPLEMENTED;\r
+\r
+ case NSSM_SERVICE_CONTROL_ROTATE:\r
+ log_service_control(service->name, control, true);\r
+ if (service->rotate_stdout_online) service->rotate_stdout_online = NSSM_ROTATE_ONLINE_ASAP;\r
+ if (service->rotate_stdout_online) service->rotate_stderr_online = NSSM_ROTATE_ONLINE_ASAP;\r
+ return NO_ERROR;\r
}\r
\r
/* Unknown control */\r