X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=blobdiff_plain;ds=sidebyside;f=config.c;h=086956fc914bc3218fe7d5c88dfd73a1291196a5;hb=a063e522970946bf7d5dc052079d7773c0dee76d;hp=711028c74e0f55ef53e9eb455c156c4bda9529c9;hpb=cda67c7c44bd1b1aef29fa9dc27118aa5ba35e2c;p=PuTTY.git diff --git a/config.c b/config.c index 711028c7..086956fc 100644 --- a/config.c +++ b/config.c @@ -568,6 +568,7 @@ struct sessionsaver_data { static void sessionsaver_data_free(void *ssdv) { struct sessionsaver_data *ssd = (struct sessionsaver_data *)ssdv; + get_sesslist(&ssd->sesslist, FALSE); sfree(ssd->savedsession); sfree(ssd); } @@ -1473,7 +1474,7 @@ void setup_config_box(struct controlbox *b, int midsession, HELPCTX(logging_filename), conf_filesel_handler, I(CONF_logfilename)); ctrl_text(s, "(Log file name can contain &Y, &M, &D for date," - " &T for time, and &H for host name)", + " &T for time, &H for host name, and &P for port number)", HELPCTX(logging_filename)); ctrl_radiobuttons(s, "What to do if the log file already exists:", 'e', 1, HELPCTX(logging_exists), @@ -2136,7 +2137,8 @@ void setup_config_box(struct controlbox *b, int midsession, ctrl_settitle(b, "Connection/SSH", "Options controlling SSH connections"); - if (midsession && protcfginfo == 1) { + /* SSH-1 or connection-sharing downstream */ + if (midsession && (protcfginfo == 1 || protcfginfo == -1)) { s = ctrl_getset(b, "Connection/SSH", "disclaimer", NULL); ctrl_text(s, "Nothing on this panel may be reconfigured in mid-" "session; it is only here so that sub-panels of it can " @@ -2158,7 +2160,7 @@ void setup_config_box(struct controlbox *b, int midsession, I(CONF_ssh_no_shell)); } - if (!midsession || protcfginfo != 1) { + if (!midsession || !(protcfginfo == 1 || protcfginfo == -1)) { s = ctrl_getset(b, "Connection/SSH", "protocol", "Protocol options"); ctrl_checkbox(s, "Enable compression", 'e', @@ -2203,9 +2205,10 @@ void setup_config_box(struct controlbox *b, int midsession, /* * The Connection/SSH/Kex panel. (Owing to repeat key * exchange, much of this is meaningful in mid-session _if_ - * we're using SSH-2 or haven't decided yet.) + * we're using SSH-2 and are not a connection-sharing + * downstream, or haven't decided yet.) */ - if (protcfginfo != 1) { + if (protcfginfo != 1 && protcfginfo != -1) { ctrl_settitle(b, "Connection/SSH/Kex", "Options controlling SSH key exchange"); @@ -2276,7 +2279,7 @@ void setup_config_box(struct controlbox *b, int midsession, ctrl_columns(s, 1, 100); } - if (!midsession || protcfginfo != 1) { + if (!midsession || !(protcfginfo == 1 || protcfginfo == -1)) { /* * The Connection/SSH/Cipher panel. */ @@ -2561,7 +2564,7 @@ void setup_config_box(struct controlbox *b, int midsession, if (!midsession) { /* - * The Connection/SSH/Bugs panel. + * The Connection/SSH/Bugs panels. */ ctrl_settitle(b, "Connection/SSH/Bugs", "Workarounds for SSH server bugs"); @@ -2589,6 +2592,12 @@ void setup_config_box(struct controlbox *b, int midsession, ctrl_droplist(s, "Miscomputes SSH-2 encryption keys", 'e', 20, HELPCTX(ssh_bugs_derivekey2), sshbug_handler, I(CONF_sshbug_derivekey2)); + + ctrl_settitle(b, "Connection/SSH/More bugs", + "Further workarounds for SSH server bugs"); + + s = ctrl_getset(b, "Connection/SSH/More bugs", "main", + "Detection of known bugs in SSH servers"); ctrl_droplist(s, "Requires padding on SSH-2 RSA signatures", 'p', 20, HELPCTX(ssh_bugs_rsapad2), sshbug_handler, I(CONF_sshbug_rsapad2)); @@ -2601,6 +2610,9 @@ void setup_config_box(struct controlbox *b, int midsession, ctrl_droplist(s, "Ignores SSH-2 maximum packet size", 'x', 20, HELPCTX(ssh_bugs_maxpkt2), sshbug_handler, I(CONF_sshbug_maxpkt2)); + ctrl_droplist(s, "Only supports pre-RFC4419 SSH-2 DH GEX", 'd', 20, + HELPCTX(ssh_bugs_oldgex2), + sshbug_handler, I(CONF_sshbug_oldgex2)); ctrl_droplist(s, "Replies to requests on closed channels", 'q', 20, HELPCTX(ssh_bugs_chanreq), sshbug_handler, I(CONF_sshbug_chanreq));