X-Git-Url: http://git.iain.cx/?a=blobdiff_plain;f=settings.cpp;h=f50dcc454f9bd4680e13309fef5e869ba1b73926;hb=ac8cdc8a64606b7027344c8fd4d5f7f9bc871e90;hp=45e0a58f9daac04cce66070544d8642abbe51945;hpb=b6f7fe3b11fd130f46eb6b5009391cc3bb0cad49;p=nssm.git diff --git a/settings.cpp b/settings.cpp index 45e0a58..f50dcc4 100644 --- a/settings.cpp +++ b/settings.cpp @@ -452,7 +452,9 @@ static int setting_get_priority(const TCHAR *service_name, void *param, const TC unsigned long constant; switch (get_number(key, (TCHAR *) name, &constant, false)) { - case 0: return value_from_string(name, value, (const TCHAR *) default_value); + case 0: + if (value_from_string(name, value, (const TCHAR *) default_value) == -1) return -1; + return 0; case -1: return -1; } @@ -727,20 +729,20 @@ int native_get_displayname(const TCHAR *service_name, void *param, const TCHAR * } int native_set_environment(const TCHAR *service_name, void *param, const TCHAR *name, void *default_value, value_t *value, const TCHAR *additional) { - HKEY key = open_service_registry(service_name, KEY_SET_VALUE, false); + HKEY key = open_service_registry(service_name, KEY_SET_VALUE, true); if (! key) return -1; - int ret = setting_set_environment(service_name, (void *) key, NSSM_NATIVE_ENVIRONMENT, default_value, value, additional); + int ret = setting_set_environment(service_name, (void *) key, name, default_value, value, additional); RegCloseKey(key); return ret; } int native_get_environment(const TCHAR *service_name, void *param, const TCHAR *name, void *default_value, value_t *value, const TCHAR *additional) { - HKEY key = open_service_registry(service_name, KEY_READ, false); + HKEY key = open_service_registry(service_name, KEY_READ, true); if (! key) return -1; ZeroMemory(value, sizeof(value_t)); - int ret = setting_get_environment(service_name, (void *) key, NSSM_NATIVE_ENVIRONMENT, default_value, value, additional); + int ret = setting_get_environment(service_name, (void *) key, name, default_value, value, additional); RegCloseKey(key); return ret; } @@ -1110,6 +1112,7 @@ settings_t settings[] = { { NSSM_REG_KILL_THREADS_GRACE_PERIOD, REG_DWORD, (void *) NSSM_KILL_THREADS_GRACE_PERIOD, false, 0, setting_set_number, setting_get_number }, { NSSM_REG_KILL_PROCESS_TREE, REG_DWORD, (void *) 1, false, 0, setting_set_number, setting_get_number }, { NSSM_REG_THROTTLE, REG_DWORD, (void *) NSSM_RESET_THROTTLE_RESTART, false, 0, setting_set_number, setting_get_number }, + { NSSM_REG_HOOK_SHARE_OUTPUT_HANDLES, REG_DWORD, 0, false, 0, setting_set_number, setting_get_number }, { NSSM_REG_ROTATE, REG_DWORD, 0, false, 0, setting_set_number, setting_get_number }, { NSSM_REG_ROTATE_ONLINE, REG_DWORD, 0, false, 0, setting_set_number, setting_get_number }, { NSSM_REG_ROTATE_SECONDS, REG_DWORD, 0, false, 0, setting_set_number, setting_get_number },