Write canonical AppExit string.
authorIain Patterson <me@iain.cx>
Fri, 10 Jan 2014 23:27:54 +0000 (23:27 +0000)
committerIain Patterson <me@iain.cx>
Fri, 10 Jan 2014 23:27:54 +0000 (23:27 +0000)
If the user ran "nssm set <servicename> AppExit Default exit" the
default value of AppExit would be set verbatim to "exit" which is in
contrast the documented value "Exit" with normal capitalisation.

There's no harm to that fact, as AppExit is retrieved case-insensitively
but it was nonetheless not working as intended.

settings.cpp

index 707e6c1..3943220 100644 (file)
@@ -148,7 +148,7 @@ static int setting_set_exit_action(const TCHAR *service_name, void *param, const
   for (int i = 0; exit_action_strings[i]; i++) {
     if (! _tcsnicmp((const TCHAR *) action_string, exit_action_strings[i], ACTION_LEN)) {
       if (default_value && str_equiv(action_string, (TCHAR *) default_value)) ret = 0;
-      if (RegSetValueEx(key, code, 0, REG_SZ, (const unsigned char *) action_string, (unsigned long) (_tcslen(action_string) + 1) * sizeof(TCHAR)) != ERROR_SUCCESS) {
+      if (RegSetValueEx(key, code, 0, REG_SZ, (const unsigned char *) exit_action_strings[i], (unsigned long) (_tcslen(action_string) + 1) * sizeof(TCHAR)) != ERROR_SUCCESS) {
         print_message(stderr, NSSM_MESSAGE_SETVALUE_FAILED, code, service_name, error_string(GetLastError()));
         RegCloseKey(key);
         return -1;