Allow appending to the service environment.
[nssm.git] / service.cpp
index dffd7aa..ea5a460 100644 (file)
@@ -5,8 +5,7 @@ bool use_critical_section;
 \r
 extern imports_t imports;\r
 \r
-static enum { NSSM_EXIT_RESTART, NSSM_EXIT_IGNORE, NSSM_EXIT_REALLY, NSSM_EXIT_UNCLEAN } exit_actions;\r
-static const char *exit_action_strings[] = { "Restart", "Ignore", "Exit", "Suicide", 0 };\r
+const char *exit_action_strings[] = { "Restart", "Ignore", "Exit", "Suicide", 0 };\r
 \r
 static inline int throttle_milliseconds(unsigned long throttle) {\r
   /* pow() operates on doubles. */\r
@@ -44,6 +43,7 @@ nssm_service_t *alloc_nssm_service() {
 void cleanup_nssm_service(nssm_service_t *service) {\r
   if (! service) return;\r
   if (service->env) HeapFree(GetProcessHeap(), 0, service->env);\r
+  if (service->env_extra) HeapFree(GetProcessHeap(), 0, service->env_extra);\r
   if (service->handle) CloseServiceHandle(service->handle);\r
   if (service->process_handle) CloseHandle(service->process_handle);\r
   if (service->wait_handle) UnregisterWait(service->process_handle);\r