X-Git-Url: https://tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fprocess.c;h=5bb7eb3df6da69bdc34c069ec1f9c704642b335e;hp=2dab2b58b2e1a84e86b6e80d8f8a609e12f1d8eb;hb=83fa44ce42c67837dad30ba1538bf1fa8c49a47d;hpb=04fc19112da5e7fcefefcf6e490987cdcfb6f620 diff --git a/src/process.c b/src/process.c index 2dab2b58..5bb7eb3d 100644 --- a/src/process.c +++ b/src/process.c @@ -62,12 +62,9 @@ static bool install_service(void) { return false; } - if(!strchr(program_name, '\\')) { - GetCurrentDirectory(sizeof command - 1, command + 1); - strncat(command, "\\", sizeof command - strlen(command)); - } - - strncat(command, program_name, sizeof command - strlen(command)); + HMODULE module = GetModuleHandle(NULL); + GetModuleFileName(module, command + 1, sizeof command - 1); + command[sizeof command - 1] = 0; strncat(command, "\"", sizeof command - strlen(command)); @@ -203,7 +200,7 @@ bool detach(void) { if(do_detach) { #ifndef HAVE_MINGW - if(daemon(0, 0)) { + if(daemon(1, 0)) { logger(DEBUG_ALWAYS, LOG_ERR, "Couldn't detach from terminal: %s", strerror(errno)); return false; } @@ -213,13 +210,17 @@ bool detach(void) { #endif } - logmode = use_logfile?LOGMODE_FILE:LOGMODE_SYSLOG; - if(do_detach && !use_syslog) + if(use_logfile) + logmode = LOGMODE_FILE; + else if(use_syslog || do_detach) + logmode = LOGMODE_SYSLOG; + else logmode = LOGMODE_STDERR; + openlogger(identname, logmode); logger(DEBUG_ALWAYS, LOG_NOTICE, "tincd %s (%s %s) starting, debug level %d", - VERSION, BUILD_DATE, BUILD_TIME, debug_level); + BUILD_VERSION, BUILD_DATE, BUILD_TIME, debug_level); return true; }