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:
Simon Tatham 2005-02-17 19:31:32 +00:00
Родитель fceaa2e4a7
Коммит 0598df9217
3 изменённых файлов: 5 добавлений и 2 удалений

Просмотреть файл

@ -402,7 +402,7 @@ static void sessionsaver_handler(union control *ctrl, void *dlg,
/* If at this point we have a valid session, go! */
if (*cfg2.host) {
*cfg = cfg2; /* structure copy */
cfg->remote_cmd_ptr = cfg->remote_cmd; /* nasty */
cfg->remote_cmd_ptr = NULL;
dlg_end(dlg, 1);
} else
dlg_beep(dlg);

Просмотреть файл

@ -406,7 +406,7 @@ void load_open_settings(void *sesskey, int do_host, Config *cfg)
char prot[10];
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;
if (do_host) {

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;
if (!cmd) cmd = ssh->cfg.remote_cmd;
if (ssh->cfg.ssh_subsys && ssh->cfg.remote_cmd_ptr2) {
cmd = ssh->cfg.remote_cmd_ptr2;
ssh->fallback_cmd = TRUE;
@ -7323,6 +7325,7 @@ static void do_ssh2_authconn(Ssh ssh, unsigned char *in, int inlen,
} else {
subsys = ssh->cfg.ssh_subsys;
cmd = ssh->cfg.remote_cmd_ptr;
if (!cmd) cmd = ssh->cfg.remote_cmd;
}
s->pktout = ssh2_pkt_init(SSH2_MSG_CHANNEL_REQUEST);