From 8bf21ad8fe9da1800e30487c921f14f6532dbe14 Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Tue, 14 Sep 2010 15:34:08 +0300 Subject: fixed sign in outgoing prescense --- utilities.cpp | 41 +++++++++++++++++++++++++++++++++++------ 1 file changed, 35 insertions(+), 6 deletions(-) (limited to 'utilities.cpp') diff --git a/utilities.cpp b/utilities.cpp index a64abae..b9620d4 100644 --- a/utilities.cpp +++ b/utilities.cpp @@ -492,6 +492,7 @@ static JABBER_HANDLER_FUNC SendHandler(IJabberInterface *ji, HXML node, void *pU tmp[size]= '\0'; data.append(tmp); delete [] tmp; + f.close(); DeleteFile(path_out.c_str()); } if(data.empty()) @@ -509,10 +510,10 @@ static JABBER_HANDLER_FUNC SendHandler(IJabberInterface *ji, HXML node, void *pU if(data.find(_T("Version: "), p1) != wstring::npos) { p1 = data.find(_T("Version: "), p1); - p1 = data.find(_T("\n"), p1)+2; + p1 = data.find(_T("\n"), p1)+1; } else - p1 += 2; + p1 += 1; } if(data.find(_T("Comment: "), p1) != wstring::npos) { @@ -521,13 +522,13 @@ static JABBER_HANDLER_FUNC SendHandler(IJabberInterface *ji, HXML node, void *pU if(data.find(_T("Comment: "), p1) != wstring::npos) { p1 = data.find(_T("Comment: "), p1); - p1 = data.find(_T("\n"), p1)+2; + p1 = data.find(_T("\n"), p1)+1; } else - p1 += 2; + p1 += 1; } else - p1+=2; + p1+=1; wstring::size_type p2 = data.find(_T("-----END PGP MESSAGE-----")); HXML encrypted_data = xi.addChild(node, _T("x"), data.substr(p1, p2-p1).c_str()); xi.addAttr(encrypted_data, _T("xmlns"), _T("jabber:x:signed")); @@ -585,7 +586,35 @@ static JABBER_HANDLER_FUNC PrescenseHandler(IJabberInterface *ji, HXML node, voi return FALSE; } } - + { //gpg + string out; + DWORD code; + wstring cmd = _T(" -d -a \""); + cmd += path_out; + cmd += _T("\""); + gpg_execution_params params; + pxResult result; + params.cmd = &cmd; + params.useless = ""; + params.out = &out; + params.code = &code; + params.result = &result; + HANDLE gpg_thread = mir_forkthread(pxEexcute_thread, (void*)¶ms); + if(WaitForSingleObject(gpg_thread, 10000) == WAIT_TIMEOUT) + { + TerminateThread(gpg_thread, 0); + MessageBox(0, _T("GPG execution timed out, aborted"), _T(""), MB_OK); + } + if(result == pxNotFound) + { + MessageBox(0, _T("Set path to gpg.exe first!"), _T("Warning"), MB_OK); + } + if(out.find("key ID ") != string::npos) + { + string::size_type p = out.find("key ID ") + strlen("key ID "); + string::size_type p2 = out.find("\n", p); + } + } DeleteFile(path_out.c_str()); ReleaseMutex(sign_file_mutex); return FALSE; -- cgit v1.2.3