summaryrefslogtreecommitdiff
path: root/gpg_wrapper.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'gpg_wrapper.cpp')
-rw-r--r--gpg_wrapper.cpp21
1 files changed, 19 insertions, 2 deletions
diff --git a/gpg_wrapper.cpp b/gpg_wrapper.cpp
index f9f4207..5bcf548 100644
--- a/gpg_wrapper.cpp
+++ b/gpg_wrapper.cpp
@@ -18,7 +18,8 @@
//thx gpg module from Harald Treder, Zakhar V. Bardymov
-pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD aexitcode)
+
+pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD aexitcode, pxResult *result)
{
extern bool bDebugLog;
extern fstream debuglog;
@@ -38,6 +39,7 @@ pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD
if(errno == ENOENT)
{
mir_free(bin_path);
+ *result = pxNotFound;
return pxNotFound;
}
}
@@ -52,6 +54,7 @@ pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD
success=CreatePipe(&newstdin,&writestdin,&sattrs,0);
if (!success)
{
+ *result = pxCreatePipeFailed;
return pxCreatePipeFailed;
}
@@ -60,6 +63,7 @@ pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD
{
CloseHandle(newstdin);
CloseHandle(writestdin);
+ *result = pxCreatePipeFailed;
return pxCreatePipeFailed;
}
@@ -104,6 +108,7 @@ pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD
CloseHandle(writestdin);
CloseHandle(newstdout);
CloseHandle(readstdout);
+ *result = pxCreateProcessFailed;
return pxCreateProcessFailed;
}
@@ -122,6 +127,7 @@ pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD
success=WriteFile(writestdin,inputpos,size,&transfered,NULL);
inputpos+=transfered;
+ Sleep(200);
}
storeOutput(readstdout,aoutput);
@@ -139,6 +145,17 @@ pxResult pxExecute(wstring *acommandline, char *ainput, string *aoutput, LPDWORD
CloseHandle(newstdout);
CloseHandle(readstdout);
CloseHandle(writestdin);
-
+
+ *result = pxSuccess;
return pxSuccess;
}
+
+void pxEexcute_thread(void *param)
+{
+ gpg_execution_params *params = (gpg_execution_params*)param;
+ pxResult result = pxExecute(params->cmd, params->useless, params->out, params->code, params->result);
+ if(result == pxNotFound)
+ {
+ MessageBox(0, _T("Set path to gpg.exe first!"), _T("Warning"), MB_OK);
+ }
+} \ No newline at end of file