Remove last vestiges of `buggymac' in the Config structure. Might
[u/mdw/putty] / windlg.c
index 76d4804..fe3a1ad 100644 (file)
--- 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));