[clientloop.c]
     client_loop() must detect if the session has been suspended and resumed,
     and take appropriate action in that case.
     From Martin Forssen, maf at appgate dot com
     ok markus@
This commit is contained in:
Darren Tucker 2010-01-08 16:51:40 +11:00
parent 36331b5d6c
commit e32cf43106
2 changed files with 17 additions and 1 deletions

View File

@ -9,6 +9,12 @@
Let the client detect if the server supports roaming by looking Let the client detect if the server supports roaming by looking
for the resume@appgate.com kex algorithm. for the resume@appgate.com kex algorithm.
ok markus@ ok markus@
- andreas@cvs.openbsd.org 2009/10/24 11:15:29
[clientloop.c]
client_loop() must detect if the session has been suspended and resumed,
and take appropriate action in that case.
From Martin Forssen, maf at appgate dot com
ok markus@
20091226 20091226
- (tim) [contrib/cygwin/Makefile] Install ssh-copy-id and ssh-copy-id.1 - (tim) [contrib/cygwin/Makefile] Install ssh-copy-id and ssh-copy-id.1

View File

@ -1,4 +1,4 @@
/* $OpenBSD: clientloop.c,v 1.213 2009/07/05 19:28:33 stevesk Exp $ */ /* $OpenBSD: clientloop.c,v 1.214 2009/10/24 11:15:29 andreas Exp $ */
/* /*
* Author: Tatu Ylonen <ylo@cs.hut.fi> * Author: Tatu Ylonen <ylo@cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland * Copyright (c) 1995 Tatu Ylonen <ylo@cs.hut.fi>, Espoo, Finland
@ -161,6 +161,8 @@ static int session_closed = 0; /* In SSH2: login session closed. */
static void client_init_dispatch(void); static void client_init_dispatch(void);
int session_ident = -1; int session_ident = -1;
int session_resumed = 0;
/* Track escape per proto2 channel */ /* Track escape per proto2 channel */
struct escape_filter_ctx { struct escape_filter_ctx {
int escape_pending; int escape_pending;
@ -1460,6 +1462,14 @@ client_loop(int have_pty, int escape_char_arg, int ssh2_chan_id)
client_process_output(writeset); client_process_output(writeset);
} }
if (session_resumed) {
connection_in = packet_get_connection_in();
connection_out = packet_get_connection_out();
max_fd = MAX(max_fd, connection_out);
max_fd = MAX(max_fd, connection_in);
session_resumed = 0;
}
/* /*
* Send as much buffered packet data as possible to the * Send as much buffered packet data as possible to the
* sender. * sender.