bool CheckKeyFileWriteAccess (connection_t *c) { TCHAR keyfile[MAX_PATH]; int format = 0; if (!GetKeyFilename (c, keyfile, _countof(keyfile), &format, true)) return FALSE; else return CheckFileAccess (keyfile, GENERIC_WRITE); }
void ChangePassphraseThread(int config) { HWND hwndChangePSW; MSG messages; char conn_name[100]; char msg[100]; char keyfilename[MAX_PATH]; int keyfile_format=0; TCHAR buf[1000]; /* Cut of extention from config filename. */ strncpy(conn_name, o.cnn[config].config_file, sizeof(conn_name)); conn_name[strlen(conn_name) - (strlen(o.ext_string)+1)]=0; /* Get Key filename from config file */ if (!GetKeyFilename(config, keyfilename, sizeof(keyfilename), &keyfile_format)) { ExitThread(1); } /* Show ChangePassphrase Dialog */ if (!(hwndChangePSW = CreateDialog (o.hInstance, MAKEINTRESOURCE (IDD_CHANGEPSW), NULL, (DLGPROC) ChangePassphraseDialogFunc))) return; SetDlgItemText(hwndChangePSW, TEXT_KEYFILE, keyfilename); SetDlgItemInt(hwndChangePSW, TEXT_KEYFORMAT, (UINT) keyfile_format, FALSE); myLoadString(INFO_CHANGE_PWD); mysnprintf(msg, buf, conn_name); SetWindowText(hwndChangePSW, msg); ShowWindow(hwndChangePSW, SW_SHOW); /* Run the message loop. It will run until GetMessage() returns 0 */ while (GetMessage (&messages, NULL, 0, 0)) { if(!IsDialogMessage(hwndChangePSW, &messages)) { TranslateMessage(&messages); DispatchMessage(&messages); } } ExitThread(0); }
static DWORD WINAPI ChangePassphraseThread(LPVOID data) { HWND hwndChangePSW; MSG messages; TCHAR conn_name[100]; TCHAR keyfilename[MAX_PATH]; int keyfile_format=0; connection_t *c = data; /* Cut of extention from config filename. */ _tcsncpy(conn_name, c->config_file, _countof(conn_name)); conn_name[_tcslen(conn_name) - (_tcslen(o.ext_string)+1)]=0; /* Get Key filename from config file */ if (!GetKeyFilename(c, keyfilename, _countof(keyfilename), &keyfile_format, false)) { ExitThread(1); } /* Show ChangePassphrase Dialog */ hwndChangePSW = CreateLocalizedDialog(ID_DLG_CHGPASS, ChangePassphraseDialogFunc); if (!hwndChangePSW) ExitThread(1); SetDlgItemText(hwndChangePSW, ID_TXT_KEYFILE, keyfilename); SetDlgItemInt(hwndChangePSW, ID_TXT_KEYFORMAT, (UINT) keyfile_format, FALSE); SetWindowText(hwndChangePSW, LoadLocalizedString(IDS_NFO_CHANGE_PWD, conn_name)); ShowWindow(hwndChangePSW, SW_SHOW); /* Run the message loop. It will run until GetMessage() returns 0 */ while (GetMessage (&messages, NULL, 0, 0)) { if(!IsDialogMessage(hwndChangePSW, &messages)) { TranslateMessage(&messages); DispatchMessage(&messages); } } CloseHandle (hwndChangePSW); ExitThread(0); }