EnterCriticalSection(&service->hook_section);
/* Set the environment. */
- if (service->env) duplicate_environment(service->env);
- if (service->env_extra) set_environment_block(service->env_extra);
+ set_service_environment(service);
/* ABI version. */
TCHAR number[16];
TCHAR cmd[CMD_LENGTH];
if (get_hook(service->name, hook_event, hook_action, cmd, sizeof(cmd))) {
log_event(EVENTLOG_ERROR_TYPE, NSSM_EVENT_GET_HOOK_FAILED, hook_event, hook_action, service->name, 0);
- duplicate_environment_strings(service->initial_env);
+ unset_service_environment(service);
LeaveCriticalSection(&service->hook_section);
HeapFree(GetProcessHeap(), 0, hook);
return NSSM_HOOK_STATUS_ERROR;
/* No hook. */
if (! _tcslen(cmd)) {
- duplicate_environment_strings(service->initial_env);
+ unset_service_environment(service);
LeaveCriticalSection(&service->hook_section);
HeapFree(GetProcessHeap(), 0, hook);
return NSSM_HOOK_STATUS_NOTFOUND;
}
/* Restore our environment. */
- duplicate_environment_strings(service->initial_env);
+ unset_service_environment(service);
LeaveCriticalSection(&service->hook_section);