X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/2c9c6388caa7e80195bffd93be7be7369c20bb98..b9d7bcadee831e9b59fb785f2464a5fc1897bd1a:/windlg.c diff --git a/windlg.c b/windlg.c index 76d4804f..fe3a1ad6 100644 --- a/windlg.c +++ b/windlg.c @@ -548,6 +548,8 @@ enum { IDCX_ABOUT = IDC_BUGD_DERIVEKEY2, IDC_BUGS_RSAPAD2, IDC_BUGD_RSAPAD2, + IDC_BUGS_DHGEX2, + IDC_BUGD_DHGEX2, sshbugspanelend, selectionpanelstart, @@ -865,6 +867,33 @@ char *help_context_cmd(int id) case IDC_NODELAY: return "JI(`',`connection.nodelay')"; + case IDC_PROXYTYPESTATIC: + case IDC_PROXYTYPENONE: + case IDC_PROXYTYPEHTTP: + case IDC_PROXYTYPESOCKS: + case IDC_PROXYTYPETELNET: + return "JI(`',`proxy.type')"; + case IDC_PROXYHOSTSTATIC: + case IDC_PROXYHOSTEDIT: + case IDC_PROXYPORTSTATIC: + case IDC_PROXYPORTEDIT: + return "JI(`',`proxy.main')"; + case IDC_PROXYEXCLUDESTATIC: + case IDC_PROXYEXCLUDEEDIT: + return "JI(`',`proxy.exclude')"; + case IDC_PROXYUSERSTATIC: + case IDC_PROXYUSEREDIT: + case IDC_PROXYPASSSTATIC: + case IDC_PROXYPASSEDIT: + return "JI(`',`proxy.auth')"; + case IDC_PROXYTELNETCMDSTATIC: + case IDC_PROXYTELNETCMDEDIT: + return "JI(`',`proxy.command')"; + case IDC_PROXYSOCKSVERSTATIC: + case IDC_PROXYSOCKSVER5: + case IDC_PROXYSOCKSVER4: + return "JI(`',`proxy.socksver')"; + case IDC_TSSTATIC: case IDC_TSEDIT: return "JI(`',`telnet.termspeed')"; @@ -1017,6 +1046,9 @@ char *help_context_cmd(int id) case IDC_BUGS_RSAPAD2: case IDC_BUGD_RSAPAD2: return "JI(`',`ssh.bugs.rsapad2')"; + case IDC_BUGS_DHGEX2: + case IDC_BUGD_DHGEX2: + return "JI(`',`ssh.bugs.dhgex2')"; default: return NULL; @@ -1364,6 +1396,13 @@ static void init_dlg_ctrls(HWND hwnd, int keepsess) SendDlgItemMessage(hwnd, IDC_BUGD_RSAPAD2, CB_SETCURSEL, cfg.sshbug_rsapad2 == BUG_ON ? 2 : cfg.sshbug_rsapad2 == BUG_OFF ? 1 : 0, 0); + SendDlgItemMessage(hwnd, IDC_BUGD_DHGEX2, CB_RESETCONTENT, 0, 0); + SendDlgItemMessage(hwnd, IDC_BUGD_DHGEX2, CB_ADDSTRING, 0, (LPARAM)"Auto"); + SendDlgItemMessage(hwnd, IDC_BUGD_DHGEX2, CB_ADDSTRING, 0, (LPARAM)"Off"); + SendDlgItemMessage(hwnd, IDC_BUGD_DHGEX2, CB_ADDSTRING, 0, (LPARAM)"On"); + SendDlgItemMessage(hwnd, IDC_BUGD_DHGEX2, CB_SETCURSEL, + cfg.sshbug_dhgex2 == BUG_ON ? 2 : + cfg.sshbug_dhgex2 == BUG_OFF ? 1 : 0, 0); } struct treeview_faff { @@ -1829,8 +1868,8 @@ static void create_controls(HWND hwnd, int dlgtype, int panel) IDC_PROXYEXCLUDEEDIT, 100, NULL); staticedit(&cp, "&Username", IDC_PROXYUSERSTATIC, IDC_PROXYUSEREDIT, 60); - staticedit(&cp, "Pass&word", IDC_PROXYPASSSTATIC, - IDC_PROXYPASSEDIT, 60); + staticpassedit(&cp, "Pass&word", IDC_PROXYPASSSTATIC, + IDC_PROXYPASSEDIT, 60); endbox(&cp); beginbox(&cp, "Misc. proxy settings", IDC_BOX_PROXY2); multiedit(&cp, @@ -1967,6 +2006,8 @@ static void create_controls(HWND hwnd, int dlgtype, int panel) IDC_BUGS_DERIVEKEY2, IDC_BUGD_DERIVEKEY2, 20); staticddl(&cp, "Requires &padding on SSH2 RSA signatures", IDC_BUGS_RSAPAD2, IDC_BUGD_RSAPAD2, 20); + staticddl(&cp, "Chokes on &Diffie-Hellman group exchange", + IDC_BUGS_DHGEX2, IDC_BUGD_DHGEX2, 20); endbox(&cp); } } @@ -3585,6 +3626,14 @@ static int GenericMainDlgProc(HWND hwnd, UINT msg, index == 1 ? BUG_OFF : BUG_ON); } break; + case IDC_BUGD_DHGEX2: + if (HIWORD(wParam) == CBN_SELCHANGE) { + int index = SendDlgItemMessage(hwnd, IDC_BUGD_DHGEX2, + CB_GETCURSEL, 0, 0); + cfg.sshbug_dhgex2 = (index == 0 ? BUG_AUTO : + index == 1 ? BUG_OFF : BUG_ON); + } + break; } return 0; case WM_HELP: @@ -3705,6 +3754,8 @@ void logevent(char *string) char timebuf[40]; time_t t; + log_eventlog(string); + if (nevents >= negsize) { negsize += 64; events = srealloc(events, negsize * sizeof(*events));