Add logging to RunPreconnectScript()

pull/383/head
Frank Fesevur 4 years ago committed by Selva Nair
parent c9becbf1ec
commit 836b05be31

@ -59,16 +59,31 @@ RunPreconnectScript(connection_t *c)
if (_tstat(cmdline, &st) == -1) if (_tstat(cmdline, &st) == -1)
return; return;
// Create the filename of the logfile
TCHAR script_log_filename[MAX_PATH];
_sntprintf_0(script_log_filename, _T("%s\\%s_pre.log"), o.log_dir, c->config_name);
// Create the log file
SECURITY_ATTRIBUTES sa;
CLEAR(sa);
sa.nLength = sizeof(SECURITY_ATTRIBUTES);
sa.lpSecurityDescriptor = NULL;
sa.bInheritHandle = TRUE;
HANDLE logfile_handle = CreateFile(script_log_filename, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE,
&sa, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
CLEAR(si); CLEAR(si);
CLEAR(pi); CLEAR(pi);
/* fill in STARTUPINFO struct */ /* fill in STARTUPINFO struct */
GetStartupInfo(&si); GetStartupInfo(&si);
si.cb = sizeof(si); si.cb = sizeof(si);
si.dwFlags = 0; si.dwFlags = STARTF_USESTDHANDLES;
si.wShowWindow = SW_SHOWDEFAULT; si.wShowWindow = SW_SHOWDEFAULT;
si.hStdInput = NULL; si.hStdInput = NULL;
si.hStdOutput = NULL; si.hStdOutput = logfile_handle;
si.hStdError = logfile_handle;
/* Preconnect script is run too early for config env to be available /* Preconnect script is run too early for config env to be available
* so we use the default process env here. * so we use the default process env here.
@ -92,6 +107,8 @@ RunPreconnectScript(connection_t *c)
out: out:
CloseHandle(pi.hThread); CloseHandle(pi.hThread);
CloseHandle(pi.hProcess); CloseHandle(pi.hProcess);
if (logfile_handle != NULL)
CloseHandle(logfile_handle);
} }

Loading…
Cancel
Save