From 2fbe1d2262383b272ef887d712f308f787cf33f1 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Tue, 11 Jun 2013 17:48:18 +0000 Subject: 64-bit compatible version of CryptoPP git-svn-id: http://svn.miranda-ng.org/main/trunk@4917 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c --- plugins/CryptoPP/src/GPGw/pipeexec.c | 134 ----------------------------------- 1 file changed, 134 deletions(-) delete mode 100644 plugins/CryptoPP/src/GPGw/pipeexec.c (limited to 'plugins/CryptoPP/src/GPGw/pipeexec.c') diff --git a/plugins/CryptoPP/src/GPGw/pipeexec.c b/plugins/CryptoPP/src/GPGw/pipeexec.c deleted file mode 100644 index ea54f85d1a..0000000000 --- a/plugins/CryptoPP/src/GPGw/pipeexec.c +++ /dev/null @@ -1,134 +0,0 @@ -#include "commonheaders.h" - - -BOOL isWindowsNT(void) -{ - BOOL result; - OSVERSIONINFO ovi; - - ZeroMemory(&ovi, sizeof(ovi)); - ovi.dwOSVersionInfoSize=sizeof(OSVERSIONINFO); - GetVersionEx(&ovi); - - if(ovi.dwPlatformId==VER_PLATFORM_WIN32_NT) result=TRUE; - else result=FALSE; - - return result; -} - - -void storeOutput(HANDLE ahandle, char **aoutput) -{ - DWORD success; - char readbuffer[10]; - DWORD transfered; - DWORD available; - - do - { - PeekNamedPipe(ahandle, NULL, 0, NULL, &available, NULL); - - if(available==0) continue; - - success=ReadFile(ahandle, readbuffer, sizeof(readbuffer), &transfered, NULL); - - if ((success)&&(transfered!=0)) - appendText(aoutput, readbuffer, transfered); - } - while(available>0); -} - - -pxResult pxExecute(char *acommandline, char *ainput, char **aoutput, LPDWORD aexitcode) -{ - BOOL success; - STARTUPINFO startupinfo; - SECURITY_ATTRIBUTES securityattributes; - SECURITY_DESCRIPTOR securitydescriptor; - PROCESS_INFORMATION processinformation; - HANDLE newstdin, newstdout, readstdout, writestdin; - char *inputpos; - DWORD transfered; - int size; - - LogMessage("commandline:\n", acommandline, "\n"); - - ZeroMemory(&securityattributes, sizeof(securityattributes)); - securityattributes.nLength=sizeof(SECURITY_ATTRIBUTES); - securityattributes.bInheritHandle=TRUE; - - if(isWindowsNT()) - { - InitializeSecurityDescriptor(&securitydescriptor, SECURITY_DESCRIPTOR_REVISION); - SetSecurityDescriptorDacl(&securitydescriptor, TRUE, NULL, FALSE); - securityattributes.lpSecurityDescriptor=&securitydescriptor; - } - else securityattributes.lpSecurityDescriptor=NULL; - - success=CreatePipe(&newstdin, &writestdin ,&securityattributes ,0); - if (! success) - { - LogMessage("--- ", "create pipe failed", "\n"); - return pxCreatePipeFailed; - } - - success=CreatePipe(&readstdout, &newstdout, &securityattributes, 0); - if (! success) - { - LogMessage("--- ", "create pipe failed", "\n"); - CloseHandle(newstdin); - CloseHandle(writestdin); - return pxCreatePipeFailed; - } - - GetStartupInfo(&startupinfo); - startupinfo.dwFlags=STARTF_USESTDHANDLES|STARTF_USESHOWWINDOW; - startupinfo.wShowWindow=SW_HIDE; - startupinfo.hStdOutput=newstdout; - startupinfo.hStdError=newstdout; - startupinfo.hStdInput=newstdin; - - success=CreateProcess(NULL, acommandline, NULL, NULL, TRUE, CREATE_NEW_CONSOLE, NULL, NULL, &startupinfo, &processinformation); - - if (! success) - { - LogMessage("--- ", "create process failed", "\n"); - CloseHandle(newstdin); - CloseHandle(writestdin); - CloseHandle(newstdout); - CloseHandle(readstdout); - return pxCreateProcessFailed; - } - - inputpos=ainput; - - while(TRUE) - { - success=GetExitCodeProcess(processinformation.hProcess, aexitcode); - if ((success)&&(*aexitcode!=STILL_ACTIVE)) break; - - storeOutput(readstdout, aoutput); - - if (*inputpos!='\0') size=1; - else size=0; - - success=WriteFile(writestdin, inputpos, size, &transfered, NULL); - - inputpos+=transfered; - } - - storeOutput(readstdout, aoutput); - WaitForSingleObject(processinformation.hProcess, INFINITE); - - LogMessage("output:\n", *aoutput, ""); - - CloseHandle(processinformation.hThread); - CloseHandle(processinformation.hProcess); - CloseHandle(newstdin); - CloseHandle(newstdout); - CloseHandle(readstdout); - CloseHandle(writestdin); - - return pxSuccess; -} - -- cgit v1.2.3