diff --git a/openvpn.c b/openvpn.c index 3bdb97a..06b0939 100644 --- a/openvpn.c +++ b/openvpn.c @@ -856,7 +856,6 @@ GenericPassDialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) if (param->flags & FLAG_CR_TYPE_CRV1 || param->flags & FLAG_CR_TYPE_CRTEXT) { SetDlgItemTextW(hwndDlg, ID_TXT_DESCRIPTION, wstr); - SetDlgItemTextW(hwndDlg, ID_TXT_WARNING, NULL); /* Set password echo on if needed */ if (param->flags & FLAG_CR_ECHO) @@ -903,15 +902,27 @@ GenericPassDialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { SetDlgItemTextW(hwndDlg, ID_EDT_RESPONSE, password); Button_SetCheck(GetDlgItem(hwndDlg, ID_CHK_SAVE_PASS), BST_CHECKED); - lenableOKBtn = TRUE; - /* smart card pin available: skip dialog - * if silent_connection is on, else auto submit after a few seconds. - * User can interrupt. - */ - SetFocus(GetDlgItem(hwndDlg, IDOK)); - UINT timeout = o.silent_connection ? 0 : 6; /* in seconds */ - AutoCloseSetup(hwndDlg, IDOK, timeout, ID_TXT_WARNING, IDS_NFO_AUTO_CONNECT); + const char * template = "password \"%s\" \"%%s\""; + char* fmt = malloc(strlen(template) + strlen(param->id)); + if (fmt) + { + sprintf(fmt, template, param->id); + PrintDebug(L"Send passwd to mgmt with format: '%hs'", fmt); + ManagementCommandFromInput(param->c, fmt, hwndDlg, ID_EDT_RESPONSE); + free(fmt); + + EndDialog(hwndDlg, IDOK); + return TRUE; + } + else /* no memory? send stop signal */ + { + WriteStatusLog(param->c, + L"GUI> ", + L"Out of memory in password dialog: sending stop signal", + false); + StopOpenVPN(param->c); + } } else if (param->c->failed_auth_attempts > 0) { @@ -920,6 +931,18 @@ GenericPassDialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) SetDlgItemTextW( hwndDlg, ID_TXT_WARNING, LoadLocalizedString(IDS_NFO_KEY_PASS_RETRY)); + + // Extend window size for Warning + RECT rect = { 0 }; + GetWindowRect(hwndDlg, &rect); + rect.right -= rect.left; + rect.bottom -= rect.top; + + HWND warningText = GetDlgItem(hwndDlg, ID_TXT_WARNING); + RECT warningRect = { 0 }; + GetWindowRect(warningText, &warningRect); + + SetWindowPos(hwndDlg, NULL, 0, 0, rect.right, rect.bottom + warningRect.bottom - warningRect.top + DPI_SCALE(4), SWP_NOMOVE); } SecureZeroMemory(password, sizeof(password)); diff --git a/res/openvpn-gui-res-cs.rc b/res/openvpn-gui-res-cs.rc index edda5fd..f6885c3 100644 --- a/res/openvpn-gui-res-cs.rc +++ b/res/openvpn-gui-res-cs.rc @@ -78,7 +78,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - Odpověď na výzvu" diff --git a/res/openvpn-gui-res-de.rc b/res/openvpn-gui-res-de.rc index d18527f..f1fc7eb 100644 --- a/res/openvpn-gui-res-de.rc +++ b/res/openvpn-gui-res-de.rc @@ -78,7 +78,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN – Challenge Response" diff --git a/res/openvpn-gui-res-dk.rc b/res/openvpn-gui-res-dk.rc index 9b6b0a2..d220c35 100644 --- a/res/openvpn-gui-res-dk.rc +++ b/res/openvpn-gui-res-dk.rc @@ -79,7 +79,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - Challenge Response" diff --git a/res/openvpn-gui-res-en.rc b/res/openvpn-gui-res-en.rc index ec784fd..cb8d0b4 100644 --- a/res/openvpn-gui-res-en.rc +++ b/res/openvpn-gui-res-en.rc @@ -78,7 +78,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN – Challenge Response" diff --git a/res/openvpn-gui-res-es.rc b/res/openvpn-gui-res-es.rc index c0159a0..559a768 100644 --- a/res/openvpn-gui-res-es.rc +++ b/res/openvpn-gui-res-es.rc @@ -77,7 +77,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - Challenge Response" diff --git a/res/openvpn-gui-res-fa.rc b/res/openvpn-gui-res-fa.rc index 4e88021..4779945 100644 --- a/res/openvpn-gui-res-fa.rc +++ b/res/openvpn-gui-res-fa.rc @@ -80,7 +80,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST | WS_EX_RTLREADING | WS_EX_LAYOUTRTL CAPTION "OpenVPN – پاسخ چالش" diff --git a/res/openvpn-gui-res-fi.rc b/res/openvpn-gui-res-fi.rc index 7677d8c..3d61830 100644 --- a/res/openvpn-gui-res-fi.rc +++ b/res/openvpn-gui-res-fi.rc @@ -78,7 +78,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - Haastemenetelmä" diff --git a/res/openvpn-gui-res-fr.rc b/res/openvpn-gui-res-fr.rc index ae18025..777b646 100644 --- a/res/openvpn-gui-res-fr.rc +++ b/res/openvpn-gui-res-fr.rc @@ -77,7 +77,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - Réponse de défi" diff --git a/res/openvpn-gui-res-it.rc b/res/openvpn-gui-res-it.rc index c86f17c..40c54d9 100644 --- a/res/openvpn-gui-res-it.rc +++ b/res/openvpn-gui-res-it.rc @@ -77,7 +77,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - Challenge Response" diff --git a/res/openvpn-gui-res-jp.rc b/res/openvpn-gui-res-jp.rc index 56ba08d..ba66a74 100644 --- a/res/openvpn-gui-res-jp.rc +++ b/res/openvpn-gui-res-jp.rc @@ -79,7 +79,7 @@ BEGIN LTEXT "", ID_TXT_WARNING, 6, 108, 150, 10 END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - チャレンジ/レスポンス" diff --git a/res/openvpn-gui-res-kr.rc b/res/openvpn-gui-res-kr.rc index 85c9d85..35ca348 100644 --- a/res/openvpn-gui-res-kr.rc +++ b/res/openvpn-gui-res-kr.rc @@ -79,7 +79,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - 자격증명" diff --git a/res/openvpn-gui-res-nl.rc b/res/openvpn-gui-res-nl.rc index 5c7bd6c..48d6306 100644 --- a/res/openvpn-gui-res-nl.rc +++ b/res/openvpn-gui-res-nl.rc @@ -77,7 +77,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - Challenge Response" diff --git a/res/openvpn-gui-res-no.rc b/res/openvpn-gui-res-no.rc index f5af47d..136a817 100644 --- a/res/openvpn-gui-res-no.rc +++ b/res/openvpn-gui-res-no.rc @@ -78,7 +78,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - Challenge Response" diff --git a/res/openvpn-gui-res-pl.rc b/res/openvpn-gui-res-pl.rc index d8c7bec..9ad886e 100644 --- a/res/openvpn-gui-res-pl.rc +++ b/res/openvpn-gui-res-pl.rc @@ -79,7 +79,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - Odpowiedź" diff --git a/res/openvpn-gui-res-pt.rc b/res/openvpn-gui-res-pt.rc index 7d0742e..ae514fe 100644 --- a/res/openvpn-gui-res-pt.rc +++ b/res/openvpn-gui-res-pt.rc @@ -77,7 +77,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - Resposta do Desafio" diff --git a/res/openvpn-gui-res-ru.rc b/res/openvpn-gui-res-ru.rc index 3ca2be8..ede7473 100644 --- a/res/openvpn-gui-res-ru.rc +++ b/res/openvpn-gui-res-ru.rc @@ -79,7 +79,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN – Challenge Response" diff --git a/res/openvpn-gui-res-se.rc b/res/openvpn-gui-res-se.rc index 970a726..8d3b777 100644 --- a/res/openvpn-gui-res-se.rc +++ b/res/openvpn-gui-res-se.rc @@ -77,7 +77,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - Challenge Response" diff --git a/res/openvpn-gui-res-tr.rc b/res/openvpn-gui-res-tr.rc index 3fa23e2..e237783 100644 --- a/res/openvpn-gui-res-tr.rc +++ b/res/openvpn-gui-res-tr.rc @@ -79,7 +79,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - Challenge Response" diff --git a/res/openvpn-gui-res-ua.rc b/res/openvpn-gui-res-ua.rc index 8702203..baf4993 100644 --- a/res/openvpn-gui-res-ua.rc +++ b/res/openvpn-gui-res-ua.rc @@ -77,7 +77,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - Challenge Response" diff --git a/res/openvpn-gui-res-zh-hans.rc b/res/openvpn-gui-res-zh-hans.rc index 1dc5699..d4f2003 100644 --- a/res/openvpn-gui-res-zh-hans.rc +++ b/res/openvpn-gui-res-zh-hans.rc @@ -80,7 +80,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - 质询响应" diff --git a/res/openvpn-gui-res-zh-hant.rc b/res/openvpn-gui-res-zh-hant.rc index 06283e0..9833d1a 100644 --- a/res/openvpn-gui-res-zh-hant.rc +++ b/res/openvpn-gui-res-zh-hant.rc @@ -80,7 +80,7 @@ BEGIN END /* Challenge Response Dialog */ -ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 106 +ID_DLG_CHALLENGE_RESPONSE DIALOGEX 6, 18, 212, 90 STYLE WS_SIZEBOX | WS_POPUP | WS_VISIBLE | WS_CAPTION | DS_CENTER | DS_SETFOREGROUND EXSTYLE WS_EX_TOPMOST CAPTION "OpenVPN - 挑戰回應"