зеркало из https://github.com/github/putty.git
Adjust the semantics of cfg.remote_cmd_ptr: it is now NULL when
cfg.remote_cmd is to be used, rather than actually pointing at cfg.remote_cmd. This change restores the ability to structure-copy Configs without breaking them. (Though of course this is only a temporary solution: really what wants doing is to fix `config-struct'.) [originally from svn r5335]
This commit is contained in:
Родитель
fceaa2e4a7
Коммит
0598df9217
2
config.c
2
config.c
|
@ -402,7 +402,7 @@ static void sessionsaver_handler(union control *ctrl, void *dlg,
|
||||||
/* If at this point we have a valid session, go! */
|
/* If at this point we have a valid session, go! */
|
||||||
if (*cfg2.host) {
|
if (*cfg2.host) {
|
||||||
*cfg = cfg2; /* structure copy */
|
*cfg = cfg2; /* structure copy */
|
||||||
cfg->remote_cmd_ptr = cfg->remote_cmd; /* nasty */
|
cfg->remote_cmd_ptr = NULL;
|
||||||
dlg_end(dlg, 1);
|
dlg_end(dlg, 1);
|
||||||
} else
|
} else
|
||||||
dlg_beep(dlg);
|
dlg_beep(dlg);
|
||||||
|
|
|
@ -406,7 +406,7 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg)
|
||||||
char prot[10];
|
char prot[10];
|
||||||
|
|
||||||
cfg->ssh_subsys = 0; /* FIXME: load this properly */
|
cfg->ssh_subsys = 0; /* FIXME: load this properly */
|
||||||
cfg->remote_cmd_ptr = cfg->remote_cmd;
|
cfg->remote_cmd_ptr = NULL;
|
||||||
cfg->remote_cmd_ptr2 = NULL;
|
cfg->remote_cmd_ptr2 = NULL;
|
||||||
|
|
||||||
if (do_host) {
|
if (do_host) {
|
||||||
|
|
3
ssh.c
3
ssh.c
|
@ -4619,6 +4619,8 @@ static void do_ssh1_connection(Ssh ssh, unsigned char *in, int inlen,
|
||||||
{
|
{
|
||||||
char *cmd = ssh->cfg.remote_cmd_ptr;
|
char *cmd = ssh->cfg.remote_cmd_ptr;
|
||||||
|
|
||||||
|
if (!cmd) cmd = ssh->cfg.remote_cmd;
|
||||||
|
|
||||||
if (ssh->cfg.ssh_subsys && ssh->cfg.remote_cmd_ptr2) {
|
if (ssh->cfg.ssh_subsys && ssh->cfg.remote_cmd_ptr2) {
|
||||||
cmd = ssh->cfg.remote_cmd_ptr2;
|
cmd = ssh->cfg.remote_cmd_ptr2;
|
||||||
ssh->fallback_cmd = TRUE;
|
ssh->fallback_cmd = TRUE;
|
||||||
|
@ -7323,6 +7325,7 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen,
|
||||||
} else {
|
} else {
|
||||||
subsys = ssh->cfg.ssh_subsys;
|
subsys = ssh->cfg.ssh_subsys;
|
||||||
cmd = ssh->cfg.remote_cmd_ptr;
|
cmd = ssh->cfg.remote_cmd_ptr;
|
||||||
|
if (!cmd) cmd = ssh->cfg.remote_cmd;
|
||||||
}
|
}
|
||||||
|
|
||||||
s->pktout = ssh2_pkt_init(SSH2_MSG_CHANNEL_REQUEST);
|
s->pktout = ssh2_pkt_init(SSH2_MSG_CHANNEL_REQUEST);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче