From 903cf85316f641a2d7fcc7fb87ed75889469d2dc Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Wed, 30 Mar 2011 09:36:35 +0300 Subject: some agression ) --- gpg_wrapper.cpp | 7 ++++--- gpg_wrapper.h | 1 + main.cpp | 29 +++++++++++++++++++++++++++++ messages.cpp | 6 ++++++ options.cpp | 7 +++++++ utilities.cpp | 6 ++++++ 6 files changed, 53 insertions(+), 3 deletions(-) diff --git a/gpg_wrapper.cpp b/gpg_wrapper.cpp index b85d24b..3ed7f4a 100644 --- a/gpg_wrapper.cpp +++ b/gpg_wrapper.cpp @@ -21,7 +21,7 @@ //boost::mutex gpg_mutex; -pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD aexitcode, pxResult *result) +pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD aexitcode, pxResult *result, HANDLE hProcess) { // gpg_mutex.lock(); if(!gpg_configured) @@ -102,7 +102,6 @@ pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD debuglog<cmd, params->useless, params->out, params->code, params->result); + pxResult result = pxExecute(params->cmd, params->useless, params->out, params->code, params->result, params->hProcess); } diff --git a/gpg_wrapper.h b/gpg_wrapper.h index d9a02c9..f9d6670 100644 --- a/gpg_wrapper.h +++ b/gpg_wrapper.h @@ -24,6 +24,7 @@ struct gpg_execution_params string *out; LPDWORD code; pxResult *result; + HANDLE hProcess; }; void pxEexcute_thread(void *param); diff --git a/main.cpp b/main.cpp index ad091f6..3f8b70c 100644 --- a/main.cpp +++ b/main.cpp @@ -94,6 +94,7 @@ static BOOL CALLBACK DlgProcFirstRun(HWND hwndDlg,UINT msg,WPARAM wParam,LPARAM if(!gpg_thread.timed_join(boost::posix_time::seconds(10))) { gpg_thread.~thread(); + TerminateProcess(params.hProcess, 1); debuglog<timed_join(boost::posix_time::seconds(10))) { delete gpg_thread; + TerminateProcess(params.hProcess, 1); debuglog<timed_join(boost::posix_time::seconds(10))) { delete gpg_thread; + TerminateProcess(params.hProcess, 1); debuglog<timed_join(boost::posix_time::seconds(10))) { delete gpg_thread; + TerminateProcess(params.hProcess, 1); debuglog<timed_join(boost::posix_time::seconds(10))) { delete gpg_thread; + TerminateProcess(params.hProcess, 1); debuglog<timed_join(boost::posix_time::seconds(10))) { delete gpg_thread; + TerminateProcess(params.hProcess, 1); debuglog<timed_join(boost::posix_time::minutes(15))) { delete gpg_thread; + TerminateProcess(params.hProcess, 1); debuglog<timed_join(boost::posix_time::seconds(15))) { delete gpg_thread; + TerminateProcess(params.hProcess, 1); debuglog<timed_join(boost::posix_time::seconds(180))) { delete gpg_thread; + TerminateProcess(params.hProcess, 1); debuglog<timed_join(boost::posix_time::seconds(180))) { delete gpg_thread; + TerminateProcess(params.hProcess, 1); debuglog<