1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-01-10 09:58:01 +00:00

Disable some mid-session configs for downstreams.

Compression, encryption, and key exchange settings are all meaningless
to reconfigure in connection-sharing downstreams.
This commit is contained in:
Jacob Nevins 2014-11-09 00:10:46 +00:00
parent cda67c7c44
commit f662ff790c
2 changed files with 16 additions and 8 deletions

View File

@ -2136,7 +2136,8 @@ void setup_config_box(struct controlbox *b, int midsession,
ctrl_settitle(b, "Connection/SSH", ctrl_settitle(b, "Connection/SSH",
"Options controlling SSH connections"); "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); s = ctrl_getset(b, "Connection/SSH", "disclaimer", NULL);
ctrl_text(s, "Nothing on this panel may be reconfigured in mid-" ctrl_text(s, "Nothing on this panel may be reconfigured in mid-"
"session; it is only here so that sub-panels of it can " "session; it is only here so that sub-panels of it can "
@ -2158,7 +2159,7 @@ void setup_config_box(struct controlbox *b, int midsession,
I(CONF_ssh_no_shell)); I(CONF_ssh_no_shell));
} }
if (!midsession || protcfginfo != 1) { if (!midsession || !(protcfginfo == 1 || protcfginfo == -1)) {
s = ctrl_getset(b, "Connection/SSH", "protocol", "Protocol options"); s = ctrl_getset(b, "Connection/SSH", "protocol", "Protocol options");
ctrl_checkbox(s, "Enable compression", 'e', ctrl_checkbox(s, "Enable compression", 'e',
@ -2203,9 +2204,10 @@ void setup_config_box(struct controlbox *b, int midsession,
/* /*
* The Connection/SSH/Kex panel. (Owing to repeat key * The Connection/SSH/Kex panel. (Owing to repeat key
* exchange, much of this is meaningful in mid-session _if_ * 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", ctrl_settitle(b, "Connection/SSH/Kex",
"Options controlling SSH key exchange"); "Options controlling SSH key exchange");
@ -2276,7 +2278,7 @@ void setup_config_box(struct controlbox *b, int midsession,
ctrl_columns(s, 1, 100); ctrl_columns(s, 1, 100);
} }
if (!midsession || protcfginfo != 1) { if (!midsession || !(protcfginfo == 1 || protcfginfo == -1)) {
/* /*
* The Connection/SSH/Cipher panel. * The Connection/SSH/Cipher panel.
*/ */

10
ssh.c
View File

@ -11241,12 +11241,18 @@ static int ssh_return_exitcode(void *handle)
} }
/* /*
* cfg_info for SSH is the currently running version of the * cfg_info for SSH is the protocol running in this session.
* protocol. (1 for 1; 2 for 2; 0 for not-decided-yet.) * (1 or 2 for the full SSH-1 or SSH-2 protocol; -1 for the bare
* SSH-2 connection protocol, i.e. a downstream; 0 for not-decided-yet.)
*/ */
static int ssh_cfg_info(void *handle) static int ssh_cfg_info(void *handle)
{ {
Ssh ssh = (Ssh) handle; Ssh ssh = (Ssh) handle;
if (ssh->version == 0)
return 0; /* don't know yet */
else if (ssh->bare_connection)
return -1;
else
return ssh->version; return ssh->version;
} }