diff options
author | Gluzskiy Alexandr <sss123next@list.ru> | 2010-09-16 10:26:41 +0300 |
---|---|---|
committer | Gluzskiy Alexandr <sss123next@list.ru> | 2010-09-16 10:26:41 +0300 |
commit | 3f78527079ce4424a061a7f5bfbd2f8a7407e410 (patch) | |
tree | 8406b72ab7a747fd886d64bedee51547491a2e8f /main.cpp | |
parent | f8e420612fcc94a7a3f2455f357d7d57ff31c62d (diff) |
modified: main.cpp
modified: new_gpg.rc
modified: options.cpp
modified: resource.h
Diffstat (limited to 'main.cpp')
-rw-r--r-- | main.cpp | 40 |
1 files changed, 39 insertions, 1 deletions
@@ -1088,11 +1088,17 @@ static BOOL CALLBACK DlgProcLoadExistingKey(HWND hwndDlg,UINT msg,WPARAM wParam, } static BOOL CALLBACK DlgProcImportKeyDialog(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { + extern HANDLE new_key_hcnt; + extern HANDLE new_key_hcnt_mutex; + HANDLE hContact = new_key_hcnt; + ReleaseMutex(new_key_hcnt_mutex); switch (msg) { case WM_INITDIALOG: { TranslateDialogDefault(hwndDlg); + ComboBoxAddStringUtf(GetDlgItem(hwndDlg, IDC_KEYSERVER), _T("subkeys.pgp.net"), 0); + ComboBoxAddStringUtf(GetDlgItem(hwndDlg, IDC_KEYSERVER), _T("keys.gnupg.net"), 0); return TRUE; } @@ -1102,11 +1108,43 @@ static BOOL CALLBACK DlgProcImportKeyDialog(HWND hwndDlg, UINT msg, WPARAM wPara switch (LOWORD(wParam)) { case IDC_IMPORT: + { + string out; + DWORD code; + wstring cmd = _T(" --keyserver \""); + TCHAR *server= new TCHAR [128]; + GetDlgItemText(hwndDlg, IDC_KEYSERVER, server, 128); + cmd += server; + delete [] server; + cmd += _T("\" --recv-keys "); + char *tmp = UniGetContactSettingUtf(hContact, szGPGModuleName, "KeyID_Prescense", ""); + TCHAR *tmp2 = mir_a2t(tmp); + mir_free(tmp); + cmd += tmp2; + mir_free(tmp2); + 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); + } + MessageBoxA(0, out.c_str(), "GPG output", MB_OK); + } break; default: break; } - break; } |