Fixed a PuTTYtel startup assertion failure introduced in r8305.
[u/mdw/putty] / config.c
index 85e13c2..8d492df 100644 (file)
--- a/config.c
+++ b/config.c
@@ -1577,8 +1577,8 @@ void setup_config_box(struct controlbox *b, int midsession,
                  "Options controlling character set translation");
 
     s = ctrl_getset(b, "Window/Translation", "trans",
-                   "Character set translation on received data");
-    ctrl_combobox(s, "Received data assumed to be in which character set:",
+                   "Character set translation");
+    ctrl_combobox(s, "Remote character set:",
                  'r', 100, HELPCTX(translation_codepage),
                  codepage_handler, P(NULL), P(NULL));
 
@@ -1729,13 +1729,17 @@ void setup_config_box(struct controlbox *b, int midsession,
                          NULL);
 #endif
 
-           s = ctrl_getset(b, "Connection", "identity",
-                           "Logical name of remote host");
-           ctrl_editbox(s, "Logical name of remote host (e.g. for SSH key lookup):",
-                        'm', 100,
-                        HELPCTX(connection_loghost),
-                        dlg_stdeditbox_handler, I(offsetof(Config,loghost)),
-                        I(sizeof(((Config *)0)->loghost)));
+           {
+               char *label = backend_from_proto(PROT_SSH) ?
+                   "Logical name of remote host (e.g. for SSH key lookup):" :
+                   "Logical name of remote host:";
+               s = ctrl_getset(b, "Connection", "identity",
+                               "Logical name of remote host");
+               ctrl_editbox(s, label, 'm', 100,
+                            HELPCTX(connection_loghost),
+                            dlg_stdeditbox_handler, I(offsetof(Config,loghost)),
+                            I(sizeof(((Config *)0)->loghost)));
+           }
        }
 
        /*
@@ -1751,6 +1755,21 @@ void setup_config_box(struct controlbox *b, int midsession,
                         HELPCTX(connection_username),
                         dlg_stdeditbox_handler, I(offsetof(Config,username)),
                         I(sizeof(((Config *)0)->username)));
+           {
+               /* We assume the local username is sufficiently stable
+                * to include on the dialog box. */
+               char *user = get_username();
+               char *userlabel = dupprintf("Use system username (%s)", user);
+               sfree(user);
+               ctrl_radiobuttons(s, "When username is not specified:", 'n', 4,
+                                 HELPCTX(connection_username_from_env),
+                                 dlg_stdradiobutton_handler,
+                                 I(offsetof(Config, username_from_env)),
+                                 "Prompt", I(FALSE),
+                                 userlabel, I(TRUE),
+                                 NULL);
+               sfree(userlabel);
+           }
 
            s = ctrl_getset(b, "Connection/Data", "term",
                            "Terminal details");
@@ -2051,6 +2070,13 @@ void setup_config_box(struct controlbox *b, int midsession,
                          dlg_stdcheckbox_handler,
                          I(offsetof(Config,try_ki_auth)));
 
+#ifndef NO_GSSAPI
+           ctrl_checkbox(s, "Attempt GSSAPI auth (SSH-2)",
+                         NO_SHORTCUT, HELPCTX(no_help),
+                         dlg_stdcheckbox_handler,
+                         I(offsetof(Config,try_gssapi_auth)));
+#endif
+
            s = ctrl_getset(b, "Connection/SSH/Auth", "params",
                            "Authentication parameters");
            ctrl_checkbox(s, "Allow agent forwarding", 'f',
@@ -2060,6 +2086,12 @@ void setup_config_box(struct controlbox *b, int midsession,
                          HELPCTX(ssh_auth_changeuser),
                          dlg_stdcheckbox_handler,
                          I(offsetof(Config,change_username)));
+#ifndef NO_GSSAPI
+           ctrl_checkbox(s, "Allow GSSAPI credential delegation in SSH-2", NO_SHORTCUT,
+                         HELPCTX(no_help),
+                         dlg_stdcheckbox_handler,
+                         I(offsetof(Config,gssapifwd)));
+#endif
            ctrl_filesel(s, "Private key file for authentication:", 'k',
                         FILTER_KEY_FILES, FALSE, "Select private key file",
                         HELPCTX(ssh_auth_privkey),