return ret;\r
}\r
\r
+/* Set default values which aren't zero. */\r
+void set_nssm_service_defaults(nssm_service_t *service) {\r
+ if (! service) return;\r
+\r
+ service->stdin_sharing = NSSM_STDIN_SHARING;\r
+ service->stdin_disposition = NSSM_STDIN_DISPOSITION;\r
+ service->stdin_flags = NSSM_STDIN_FLAGS;\r
+ service->stdout_sharing = NSSM_STDOUT_SHARING;\r
+ service->stdout_disposition = NSSM_STDOUT_DISPOSITION;\r
+ service->stdout_flags = NSSM_STDOUT_FLAGS;\r
+ service->stderr_sharing = NSSM_STDERR_SHARING;\r
+ service->stderr_disposition = NSSM_STDERR_DISPOSITION;\r
+ service->stderr_flags = NSSM_STDERR_FLAGS;\r
+ service->throttle_delay = NSSM_RESET_THROTTLE_RESTART;\r
+ service->stop_method = ~0;\r
+ service->kill_console_delay = NSSM_KILL_CONSOLE_GRACE_PERIOD;\r
+ service->kill_window_delay = NSSM_KILL_WINDOW_GRACE_PERIOD;\r
+ service->kill_threads_delay = NSSM_KILL_THREADS_GRACE_PERIOD;\r
+}\r
+\r
/* Allocate and zero memory for a service. */\r
nssm_service_t *alloc_nssm_service() {\r
nssm_service_t *service = (nssm_service_t *) HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(nssm_service_t));\r
return 1;\r
}\r
\r
+ set_nssm_service_defaults(service);\r
memmove(service->name, argv[0], strlen(argv[0]));\r
memmove(service->exe, argv[1], strlen(argv[1]));\r
\r