X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;f=windows%2Fwindlg.c;h=e29f12914e3428e0b54257a6ae837802cb0ef466;hb=ac5b13398f47c99cc189eed4538abcccc3c18300;hp=8248ce835974fd8ffdc3142da7d118ea0f8f0913;hpb=9ddd071ec28050b3be572f25f3ae7d44e46e4039;p=PuTTY.git diff --git a/windows/windlg.c b/windows/windlg.c index 8248ce83..e29f1291 100644 --- a/windows/windlg.c +++ b/windows/windlg.c @@ -67,8 +67,8 @@ void force_normal(HWND hwnd) recurse = 0; } -static int CALLBACK LogProc(HWND hwnd, UINT msg, - WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK LogProc(HWND hwnd, UINT msg, + WPARAM wParam, LPARAM lParam) { int i; @@ -162,8 +162,8 @@ static int CALLBACK LogProc(HWND hwnd, UINT msg, return 0; } -static int CALLBACK LicenceProc(HWND hwnd, UINT msg, - WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK LicenceProc(HWND hwnd, UINT msg, + WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: @@ -189,8 +189,8 @@ static int CALLBACK LicenceProc(HWND hwnd, UINT msg, return 0; } -static int CALLBACK AboutProc(HWND hwnd, UINT msg, - WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK AboutProc(HWND hwnd, UINT msg, + WPARAM wParam, LPARAM lParam) { char *str; @@ -200,10 +200,12 @@ static int CALLBACK AboutProc(HWND hwnd, UINT msg, SetWindowText(hwnd, str); sfree(str); { + char *buildinfo_text = buildinfo("\r\n"); char *text = dupprintf - ("%s\r\n\r\n%s\r\n\r\n%s", - appname, ver, + ("%s\r\n\r\n%s\r\n\r\n%s\r\n\r\n%s", + appname, ver, buildinfo_text, "\251 " SHORT_COPYRIGHT_DETAILS ". All rights reserved."); + sfree(buildinfo_text); SetDlgItemText(hwnd, IDA_TEXT, text); sfree(text); } @@ -291,8 +293,8 @@ static void SaneEndDialog(HWND hwnd, int ret) /* * Null dialog procedure. */ -static int CALLBACK NullDlgProc(HWND hwnd, UINT msg, - WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK NullDlgProc(HWND hwnd, UINT msg, + WPARAM wParam, LPARAM lParam) { return 0; } @@ -375,8 +377,8 @@ static void create_controls(HWND hwnd, char *path) * (Being a dialog procedure, in general it returns 0 if the default * dialog processing should be performed, and 1 if it should not.) */ -static int CALLBACK GenericMainDlgProc(HWND hwnd, UINT msg, - WPARAM wParam, LPARAM lParam) +static INT_PTR CALLBACK GenericMainDlgProc(HWND hwnd, UINT msg, + WPARAM wParam, LPARAM lParam) { HWND hw, treeview; struct treeview_faff tvfaff; @@ -895,6 +897,33 @@ int askalg(void *frontend, const char *algtype, const char *algname, return 0; } +int askhk(void *frontend, const char *algname, const char *betteralgs, + void (*callback)(void *ctx, int result), void *ctx) +{ + static const char mbtitle[] = "%s Security Alert"; + static const char msg[] = + "The first host key type we have stored for this server\n" + "is %s, which is below the configured warning threshold.\n" + "The server also provides the following types of host key\n" + "above the threshold, which we do not have stored:\n" + "%s\n" + "Do you want to continue with this connection?\n"; + char *message, *title; + int mbret; + + message = dupprintf(msg, algname, betteralgs); + title = dupprintf(mbtitle, appname); + mbret = MessageBox(NULL, message, title, + MB_ICONWARNING | MB_YESNO | MB_DEFBUTTON2); + socket_reselect_all(); + sfree(message); + sfree(title); + if (mbret == IDYES) + return 1; + else + return 0; +} + /* * Ask whether to wipe a session log file before writing to it. * Returns 2 for wipe, 1 for append, 0 for cancel (don't log).